Wydaje się to proste, ale nie wiem, jak to zrobić. Mam układ poziomy z EditText i dwoma ImageButtons. Chcę, aby ImageButtons miały stały rozmiar, a EditText zajmował pozostałe miejsce w układzie. Jak można to osiągnąć?
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</EditText>
<ImageButton
android:src="@drawable/img1"
android:layout_width="50dip"
android:layout_height="50dip">
</ImageButton>
<ImageButton
android:src="@drawable/img2"
android:layout_width="50dip"
android:layout_height="50dip">
</ImageButton>
</LinearLayout>
android
android-layout
ab11
źródło
źródło
Jeśli chcesz zachować ten sam układ (czyli przyciski za tekstem), użyj
layout_weight
właściwości wraz zfill_parent
, w ten sposób:<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <EditText android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> </EditText> <ImageButton android:src="@drawable/img1" android:layout_width="50dip" android:layout_height="50dip"> </ImageButton> <ImageButton android:src="@drawable/img2" android:layout_width="50dip" android:layout_height="50dip"> </ImageButton> </LinearLayout>
Podanie ``
EditText
wagi '' sprawia, że jest to ostatnie i daje pierwszeństwo przyciskom. Graj z różnymi layout_weights i zobacz, ile możesz się bawić!źródło
W porządku:
<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> <ImageButton android:id="@+id/button1" android:src="@drawable/img1" android:layout_width="50dip" android:layout_alignParentTop="true" android:layout_height="50dip"> </ImageButton> <ImageButton android:src="@drawable/img2" android:layout_width="50dip" android:layout_alignParentTop="true" android:layout_toRightOf="@id/button1" android:layout_height="50dip"> </ImageButton> <EditText android:layout_below="@id/button" android:layout_width="wrap_content" android:layout_height="fill_parent"> </EditText> </RelativeLayout>
Kluczowe punkty układu to:
fill_parent
później w pliku bierze pod uwagę tylko pozostałą przestrzeń, a nie całą przestrzeń, którą mógłby ewentualnie zająć, gdyby nic więcej tam nie byłofill_parent
(match_parent
w wersji 2.2+), więc zajmuje resztę dostępnego miejscaPrzepraszamy, ale nie przeczytałem twojego pytania wystarczy. Powyższy kod dostarcza odpowiedzi, jeśli chcesz to zrobić w sposób pionowy. W przypadku układu poziomego kod wysłany przez @Sunil powinien działać.
źródło
Użyj ustaw
layout_width
lublayout_height
na0dp
(według orientacji, w której chcesz wypełnić pozostałą przestrzeń). Następnie użyj,layout_weight
aby wypełnić pozostałą przestrzeń.źródło