我有5个按钮。我想把它放成一排或两排。我希望他们成为center_horizontal。我试过下面的代码:
<LinearLayout
android:id="@+id/linear_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button android:id="@+id/btn_abc"
android:text="Speak"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button android:id="@+id/btn_abc"
android:text="Speak"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button android:id="@+id/btn_abc2"
android:text="Speak"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
.....x3
</LinearLayout>
我希望上面的代码可以处理不同的屏幕尺寸。如果空间足够,请使用1行。如果空间不足,请使用2行。 但是,在真正的4英寸手机设备中,当宽度不够时,它仍然只使用1排,为什么?谢谢
答案 0 :(得分:2)
Google现在提供 Flex布局 https://github.com/google/flexbox-layout
1)添加到您的项目
依赖{ 编译'com.google.android:flexbox:0.2.3'}
2)在布局中使用
<com.google.android.flexbox.FlexboxLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:flexWrap="wrap"
app:alignItems="stretch"
app:alignContent="stretch" >
<TextView
android:id="@+id/textview1"
android:layout_width="120dp"
android:layout_height="80dp"
app:layout_flexBasisPercent="50%"
/>
<TextView
android:id="@+id/textview2"
android:layout_width="80dp"
android:layout_height="80dp"
app:layout_alignSelf="center"
/>
<TextView
android:id="@+id/textview3"
android:layout_width="160dp"
android:layout_height="80dp"
app:layout_alignSelf="flex_end"
/>
</com.google.android.flexbox.FlexboxLayout>
3)玩这2个参数
答案 1 :(得分:1)
https://github.com/ApmeM/android-flowlayout
下载并导入'android-flowlayout'项目。 右键单击项目'android-flowlayout'并选择“android” - &gt;点击“Is library”
在您的应用中,右键单击该项目并选择“android” - &gt;导入库,添加'android-flowlayout'项目。
然后只需将xml linearlayour替换为:
<org.apmem.tools.layouts.FlowLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
P.S。但它似乎不能成为中心水平。但仍然是一个很好的解决方案!