即使app在任何屏幕尺寸上运行,如何将这四个按钮设置在一行中?

时间:2015-04-03 08:32:12

标签: android android-linearlayout android-button

我尝试了这段代码,但这些按钮上的文字在手机中混乱了;虽然它在Nexus 5模拟器中很好....!如何动态地将这4个按钮放在一行,以便它们在任何屏幕尺寸上看起来都相同......

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:weightSum="8" >

    <Button
        android:id="@+id/bback"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:text="Back" />

    <Button
        android:id="@+id/bforward"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:text="Forward" />

    <Button
        android:id="@+id/brefresh"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:text="Refresh" />

    <Button
        android:id="@+id/bclear"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:text="Clear History" />
</LinearLayout>

3 个答案:

答案 0 :(得分:3)

为所有按钮设置android:layout_width0dp而不是fill_parent

答案 1 :(得分:0)

试试这个,它会在任何设备上保持按钮大小相同,也可以在任何设备上以相等的距离分布按钮,

        <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingLeft="10dp"
        android:paddingRight="10dp" >

            <LinearLayout
                android:id="@+id/1"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical" >

                <Button
                    android:id="@+id/bback"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:text="Back"
                    android:layout_gravity="center" />
            </LinearLayout>

            //same as layout 2,3,4 and respective button with in it


        </LinearLayout>

答案 2 :(得分:0)

<强> EDITTEED 请尝试使用此功能:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="5"
        android:orientation="vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        >

        <Button
            android:id="@+id/bback"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:text="Back" />

        <Button
            android:id="@+id/bforward"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:text="Forward" />

        <Button
            android:id="@+id/brefresh"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:text="Refresh" />

        <Button
            android:id="@+id/bclear"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:text="Clear History" />
    </LinearLayout>
</LinearLayout>