2010-09-01 2 views
2

Я пытаюсь получить одну строку с тремя кнопками на ней. Один дальний левый в центре и один справа. В идеале я хотел бы, чтобы центральная кнопка занимала все пространство между двумя боковыми. Прямо сейчас кнопка центра (меню) просто перекрывает левую (предыдущую) кнопку. Вот то, что я сейчас:Как центрировать кнопку между двумя другими кнопками?

<RelativeLayout android:layout_marginTop="-50dip" android:gravity="bottom" android:layout_height="wrap_content" android:layout_width="fill_parent"> 
<Button 
android:id="@+id/previous_button" 
android:layout_height="wrap_content" 
android:layout_width="110px" 
android:layout_alignParentLeft="true" 
android:text="@string/previous" 
/> 

<Button 
android:id="@+id/menu" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:scaleType="center" 
android:text="@string/menu" 
/> 

<Button 
android:id="@+id/next_button" 
android:layout_height="wrap_content" 
android:layout_width="110px" 
android:layout_alignParentRight="true" 
android:text="@string/next" 
/>   

ответ

5

Вы должны избегать использования значений пикселей для размеров. Если вы действительно хотите установить явное значение, используйте единицы dpi.

В этом случае вы должны иметь возможность использовать простой LinearLayout с layout_weights. Layout_weight определяет, как оставшееся пространство выделяется среди ваших виджетов. Если вы дадите одному виджету значение 1, а остальные 0, то один с 1 будет использовать все лишнее пространство.

<LinearLayout 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent"> 
    <Button 
    android:id="@+id/previous_button" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_weight="0"/> 
    <Button 
    android:id="@+id/menu" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_weight="1"/> 
    <Button 
    android:id="@+id/next_button" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_weight="0"/> 
</LinearLayout> 
+0

спасибо, что работал отлично :) – tylercomp

+0

вы преобразовали RelativeLayout в LinearLayout ... Если вы wan't держать RelativeLayout, просто поставить андроид: layout_toRightOf = "@ идентификатор/previous_button" (Http: // разработчик .android.com/reference/android/widget/RelativeLayout.LayoutParams.html # attr_android: layout_toRightOf) – fedj

+0

@tylercomp Отличный, рад, что он работает для вас! В stackoverflow, если ответ отвечает на ваш вопрос, вы должны пометить его как annwer, установив флажок слева от ответа. –

Смежные вопросы