我有一个布局,其中按钮放在屏幕上,我希望如果屏幕有更多的空间,那么按钮应该是每行三个,无论他们得到什么空间,他们的尺寸也应该用屏幕调整,我想要最大化屏幕中央每行三个按钮。现在我已经为两行按钮的每一行使用了线性布局,请指导我如何制作可调节按钮,这样如果屏幕尺寸很大,它应该最多显示三个按钮,如果尺寸很小,每行应该只显示两个按钮使用小按钮大小并按照默认屏幕上的说明,每行应显示三个按钮。
请参阅我的代码示例
<LinearLayout android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="25dip"
android:paddingRight="25dip"
android:paddingTop="25dip"
android:layout_width="fill_parent">
<Button
android:id="@+id/Car"
android:layout_width="110dip"
android:layout_height="110dip"
android:layout_marginLeft="10dip"
android:text="@string/car" />
<Button
android:id="@+id/Taxi"
android:layout_width="110dip"
android:layout_height="110dip"
android:layout_marginLeft="10dip"
android:text="@string/taxi" />
</LinearLayout>
答案 0 :(得分:1)
您可以使用layout_weight
根据LinearLayout
的宽度自动设置按钮的宽度。
<LinearLayout
android:id="@+id/wrapper"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="25dip"
android:paddingRight="25dip"
android:paddingTop="25dip"
android:layout_width="match_parent">
<Button
android:id="@+id/Car"
android:layout_width="0dp"
android:layout_height="110dip"
android:layout_marginLeft="10dip"
android:layout_weight="1"
android:text="@string/car" />
<Button
android:id="@+id/Taxi"
android:layout_width="0dp"
android:layout_height="110dip"
android:layout_marginLeft="10dip"
android:layout_weight="1"
android:text="@string/taxi" />
</LinearLayout>
但是,我不认为你可以设置LinearLayout
有三个按钮取决于XML的宽度。你只能以编程方式实现它。
if(getCurrentScreenWidth() > SPECIFIED_WIDTH_FOR_3_BUTTONS){
LinearLayout layout = (LinearLayout)findViewById("wrapper");
Button button = createNewButton();
layout.addView(button)
}
但最佳做法是根据android document
中所述的屏幕加载不同的布局答案 1 :(得分:0)
我就是这样做的。
为每个按钮设置宽度,如:
<Button
android:id="@+id/Car"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="110dip"
android:layout_marginLeft="10dip"
android:text="@string/car" />
如果您为每个按钮将宽度设置为0dp并将权重设置为1,则按钮将展开以填充空间。
答案 2 :(得分:0)
使用高度和宽度的固定值可能会导致不同屏幕出现问题。使用xml代码下方根据您的要求对齐按钮。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="3" >
<Button
android:id="@+id/Car"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/car" />
<Button
android:id="@+id/Taxi"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/taxi" />
<Button
android:id="@+id/bus"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/bus" />
</LinearLayout>