我一直在网上寻找资料,大多数人都回答了有关缩放的问题,但我找不到这种选择。这是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="fill_parent"
android:orientation="vertical" android:layout_gravity="center">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" android:layout_gravity="center" android:layout_weight="1"/>
</LinearLayout>
我如何使按钮居中而不进行任何拉伸(也就是我希望它包装好内容)。
谢谢
最佳答案
使用RelativeLayout而不是LinearLayout:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_centerInParent="true"/>
</RelativeLayout>
一种替代方法是使用两个嵌套的LinearLayouts,一个为水平,一个为垂直。例如:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
<Button
android:id="@+id/button1"
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"/>
</LinearLayout>
</LinearLayout>
这样做的原因是,水平LinearLayout仅关注垂直
layout_gravity
值,垂直LinearLayout仅关注水平layout_gravity
值。