我是一个安静的新开始与android,我试图有一个屏幕充满了4个按钮在彼此之下,我做了3个不同的布局文件夹layout_normal, layout_large和layout_xlarge。对于normal,我将宽度和高度设置为120dp,对于xlarge,我将它们设置为170dp,从而产生方形按钮。我在我的LG-E975上测试过,它很好,我在三星Galaxy tab 10.0上测试过,它也很好,但后来我为其他设备创建了一些模拟器来测试,它搞砸了,第四个按钮不在屏幕上,模拟器只显示3个按钮。
Emulator info:
target: Android 4.2.2
Skin: 320 x 480
hw.lcd.density: 160
我的LG和模拟器都被认为是正常的屏幕尺寸。我知道有很多关于这个问题的文章,但如果有人用简单易懂的方式给我解释一下,我会很感激。应该放弃使用固定大小的按钮吗?
编辑:这是我的xml layout-normal
<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="com.kaw.mp2.MainActivity"
android:background="@color/background_all" >
<Button
android:id="@+id/btn_main_aboutus"
android:layout_width="120dp"
android:layout_height="120dp"
android:text="@string/btn_aboutus_text"
android:layout_centerHorizontal="true"
android:layout_alignParentRight="true"
android:layout_marginTop="20dp"
android:background="@color/background_btn"
android:textColor="@color/text_color_btn" />
<Button
android:id="@+id/btn_main_contactus"
android:layout_width="120dp"
android:layout_height="120dp"
android:text="@string/btn_contactus_text"
android:layout_below="@id/btn_main_aboutus"
android:layout_marginTop="10dp"
android:layout_alignParentRight="true"
android:background="@color/background_btn"
android:textColor="@color/text_color_btn" />
<Button
android:id="@+id/btn_main_products"
android:layout_width="120dp"
android:layout_height="120dp"
android:text="@string/btn_products_text"
android:layout_below="@id/btn_main_contactus"
android:layout_marginTop="10dp"
android:layout_alignParentRight="true"
android:background="@color/background_btn"
android:textColor="@color/text_color_btn" />
<Button
android:id="@+id/btn_main_news"
android:layout_width="120dp"
android:layout_height="120dp"
android:text="@string/btn_news_text"
android:layout_below="@id/btn_main_products"
android:layout_marginTop="10dp"
android:layout_alignParentRight="true"
android:background="@color/background_btn"
android:textColor="@color/text_color_btn" />
</RelativeLayout>
我假设你想要4个按钮在一个垂直的行(水平居中)。如果我理解正确的话,你应该使用LinearLayout,用它你可以指定不同组件的权重。把它当作优先事项。如果所有按钮都具有相同的重量,则它们都将缩放以适合屏幕。
将RelativeLayout改为LinearLayout,并添加属性:
android:orientation="vertical"
所有的按钮都应该有相同的高度,
android:layout_centerHorizontal="true"
可以删除
android:layout_below="@id/btn_main_aboutus