2010-11-15 24 views
51

EditText'in yanına bir düğme koymak istiyorum ve onların yüksekliklerinin eşleşmesini istiyorum. Android tarayıcı inşa dan ÖrneğinDüğmenin yüksekliğini, başka bir öğenin yüksekliğine uyacak şekilde nasıl edinilir?

:

alt text

Git düğmesi EditText alan olarak aynı yüksekliğidir. Bu görünümlerin her ikisini de ebeveyn mizanpajı görünümünde sarmalayabildiğimi ve her ikisinin de yüksekliğini fill_parent olarak ayarlayabildiğimi biliyorum ve bu da onları eşleştirecek. Ancak, düzeni düzenli bir boyuta bırakmak zorunda kalmadan bunu yapmak istiyorum. EditText'in font boyutuna göre ihtiyaç duyduğu yüksekliği almasını ve daha sonra hangi düğmeyle olursa olsun düğmesinin yanında olmasını istiyorum.

Bu, bir xml düzeniyle mümkün mü?

+1

Bu soru yeni ConstraintLayout içerecek şekilde güncellenmesi gerekiyor. –

cevap

27

EditTextwrap_content yüksekliğini yapması ve Button sadece fill_parent olmasını sağlamanız gerekir. Bunların her ikisinin de Layout ebeveyne sarılmış olması gerekir. Bu şekilde aynı Layout ebeveyni ile ilişkilidir.

Bunu deneyin ve nasıl çalıştığını görün, bana bildirmeme yardımcı olur. Eğer size yardımcı olmazsa size yardımcı olacak bir kod verebilirim.

+0

Yardım önerisi için teşekkürler ama Falmarri'nin cevabı mükemmel bir şekilde çalıştı, ben de her şeyim belirledim. Tekrar teşekkürler. – cottonBallPaws

+0

Aslında, bunu bir sarmalayıcı görünümü olmadan yapmaya çalıştıktan sonra Falmarri'nin cevabına yanıt olarak belirttiğim sorun nedeniyle düğmenin metnin sağ tarafına doğru hizalanmasını sağlayamadım. Metodunu kullanarak, düğmeyi boyutlandırabilir ve doğru şekilde yerleştirebildim, böylece seninkini cevap olarak işaretleyeceğim. – cottonBallPaws

57

Tahminen EditText ve Button bir RelativeLayout içindedir. Düğmenin düzen niteliklerini alignTop ve EditText'un alignBottom olarak ayarlayın.

+2

Bu güzel çalıştı ve bir sarıcı gerektirmez, çok teşekkür ederim. – cottonBallPaws

+2

EditText'i düğmenin soluna nasıl yerleştirebilirim? Layout_toLeftOf = EditText'te "düğmenin kimliği" ni kullanmayı denedim, ancak Button xml dosyasındaki EditText'ten sonra bildirildiğinden, düğmenin kimliğinin bulunmadığına dair bir hata alıyorum. Onları tersine çeviremem çünkü aynı problemim var, Düğme tanımladığınız hizalama için EditText'in kimliğine atıfta bulunuyor. Bununla nasıl başa çıkacağınız konusunda herhangi bir öneriniz var mı? Teşekkürler – cottonBallPaws

15

İstediğiniz, göreli bir düzendir. Biz ebeveyn olarak bu RelativeLayout ile başlayan

aşağıdaki gibi bazı yorumlarla bir örnektir. Bu tüm içeriği sarabilir. Bu ebeveynte örneğinizden 2 eleman, buton ve editText yerleştirdik.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

Biz sağ üst köşede Düğme elemanı yerleştirerek başlayın. layout_alignParentRight ve layout_alignParentTop öğesinin tamamı budur. Yine bu en büyük elementtir, böylece tüm içeriği hem yükseklik hem de genişlik için wrap_content kullanarak tamamlayalım.

<Button 
    android:id="@+id/Button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:text="some_text" /> 

Şimdi ikinci unsur, EditText biz önceki elemanın sol tarafına hizalamak sadece bunu başarmak için layout_toLeftOf parametreyle id referansı kullanmak istiyorum.

<EditText 
    android:id="@+id/EditText1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_toLeftOf="@+id/Button1" 
    android:hint="some_hint" 
    android:inputType="textCapWords" /> 

RelativeLayout'u kapatın ve şimdi büyük olasılıkla kendinize neler çektiğinizi görmek için bunu işleyin. EditText yüksekliğinde küçük olduğu için

</RelativeLayout> 

enter image description here

bunun yanında yerleştirmiş Düğmesi uymaz. Bunun için çözüm daha fazla düzen parametresi eklemektir.Aradığınız sihirli olanlar, layout_alignBottom ve layout_alignParentTop'dur.

android:layout_alignBottom="@+id/Button1" 
    android:layout_alignParentTop="true" 

Bu 2'yi ekleyin ve düzeninizi doğru şekilde alın.

enter image description here

+0

doğrusal düzen için çalışmıyor! –

+2

@farhan patel bu yüzden göreceli bir düzenine ihtiyacınız olduğunu söyleyerek açıklamaya başladım ;-) – hcpl

İlgili konular