Странное поведение кнопок на панели кнопок в Android

Я создаю панель кнопок с некоторыми кнопками, проблема в том, что когда кнопки заполняют всю ширину экрана, новые начинают сжиматься: см. здесь

Я попытался установить ширину на wrap_content, некоторые фиксированные значения и match_parent, но все это дало мне тот же результат.

вот мой xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".Home" >

    <LinearLayout
        android:id="@+id/grid1"
        android:layout_width="875dp"
        android:layout_height="500dp"
        android:layout_centerInParent="true"
        android:background="@android:color/darker_gray"
        android:orientation="vertical" >
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:gravity="top"
        style="@android:style/ButtonBar" >

        <Button
            android:id="@+id/Main"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:text="@string/main"
            android:layout_weight="1"/>

        <Button
            android:id="@+id/HomeView"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_toRightOf="@+id/Main"
            android:text="@string/homeview" />

        <Button
            android:id="@+id/Lighting"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_toRightOf="@+id/HomeView"
            android:text="@string/lighting" />

        <Button
            android:id="@+id/A.C."
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_toRightOf="@+id/Lighting"
            android:text="@string/ac" />

        <Button
            android:id="@+id/Profiles"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_toRightOf="@+id/A.C."
            android:text="@string/profiles" />

        <Button
            android:id="@+id/Movies"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_toRightOf="@+id/Profiles"
            android:text="@string/movies" />

        <Button
            android:id="@+id/Music"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_toRightOf="@+id/Movies"
            android:text="@string/music" />

        <Button
            android:id="@+id/TVShows"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_toRightOf="@+id/Music"
            android:text="@string/tvshows" />

        <Button
            android:id="@+id/Remote"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_toRightOf="@+id/TVShows"
            android:text="@string/remote" />
    </LinearLayout>

</RelativeLayout>

person MRefaat    schedule 24.11.2013    source источник
comment
потому что ширины экрана недостаточно, поэтому вы можете поместить LinearLayout в HorizontalScrollView.   -  person Mohammad Ersan    schedule 24.11.2013
comment
@MoshErsan спасибо, это помогло мне :)   -  person MRefaat    schedule 24.11.2013


Ответы (2)


Вы не должны использовать такой дизайн, вы должны использовать панель вкладок и ссылку на панель действий Android.

http://android-developers.blogspot.fr/2011/04/customizing-action-bar.html

person Snicolas    schedule 24.11.2013

Просто установите ориентацию linearlayout

android:orientation="horizontal"

и дайте эти два параметра для всех кнопок

android:layout_widht="0dp"
android:layout_weight="1"

Теперь все кнопки будут иметь одинаковую ширину.

person Surya    schedule 24.11.2013
comment
нет опции layout_width с кнопками - person MRefaat; 24.11.2013