2011-06-03 15 views
7
bunun neden böyle merak ediyorum

:Android LinearLayout dolum genişliği

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" android:layout_width="fill_parent" 
    android:gravity="center_vertical" 
    android:layout_height="wrap_content" android:layout_gravity="top" 
    android:background="@drawable/gradient" android:focusable="true" 
    android:paddingTop="5dip" android:paddingBottom="5dip" 
    android:focusableInTouchMode="true"> 
     <EditText android:id="@+id/searchField" 
      android:layout_width="wrap_content" android:layout_height="fill_parent" 

      android:paddingTop="2dip" android:paddingBottom="2dip" 
      android:paddingLeft="10dip" android:paddingRight="10dip" 
      android:inputType="textVisiblePassword" android:radius="5dip" 
      android:layout_marginLeft="10dip" 
      android:background="@drawable/search_background" android:textColor="#000000" /> 

     <Button android:id="@+id/info" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dip" 
      android:background="@drawable/info_btn" /> 
</LinearLayout> 

benim EditText en layout_width için "fill_parent" ayarlarsanız, ebeveynin bütün genişlik ve düğme kaybolur (Ben gizlidir tahmin alır EditText'in altında.

Herkes bana açıklayabilir mi? Düğmenin kendi genişliğini almasını ve EditText'in kalan genişliğini almasını istiyorum.

cevap

21

EditText öğesini fill_parent olarak bildirdiğinizde, ekranı doldurur (düğmenin tamamı için boşluk bırakmadan tüm genişliği).

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_gravity="top" 
android:gravity="center_vertical" 
android:paddingTop="5dip" 
android:paddingBottom="5dip" 
android:orientation="horizontal"> 
<EditText 
    android:id="@+id/searchField" 
    android:layout_width="0dip" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:layout_marginLeft="10dip" 
    android:paddingTop="2dip" 
    android:paddingBottom="2dip" 
    android:paddingLeft="10dip" 
    android:paddingRight="10dip" 
    android:radius="5dip" 
    android:inputType="textVisiblePassword" 
    android:textColor="#000000" /> 
<Button 
    android:id="@+id/info" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dip" 
    android:text="Blah" /> 
</LinearLayout> 

(Başka insanlar için bu jenerik hale getirmek için çekilebilir başvuruları çıkardı:

Sen bu kullanarak layout_weight özelliği yapabilirsiniz kalanını doldurmak için içeriğini ve düzenleme metni kaydırma için düğmeye istiyorum) XML bir düzgün ve tutulma daha sürdürülebilir güzel görünmesi için değil tarafta

:

Pencere> Tercihler> XML> XML Dosyaları> Editör

Hat 120

Bölünmüş birden nitelikleri

tüm boş satır kapanış önce

takın Whitespace işaretini kaldırın

PCDATA işaretini kaldırırsanız içinde Boşluk etiketleri koru

Temizle nihai braket işaretini kaldırın hizalayın İŞARETLEYİN genişliği TICK

Tamam Tamam

Sonra XML dosyaları, bir XML dosyası açık CTRL + A sonra CTRL + ÜSTKRKT + F güzel biçimlendirmek istediğiniz zaman, düzeltebilirsiniz!

+1

Çok teşekkürler! "Layout_weight" eksik özniteliği + "0dip" genişliği her şeyi çözdü. – obo

+0

Benim için de teşekkürler. –