我正在使用一个简单的线性布局,我在Dialog片段中调用onCreateView()
时会膨胀。布局的一个例子如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:layout_margin="@dimen/activity_horizontal_margin"
android:orientation="horizontal">
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:text="Butt1"
android:textAppearance="?android:textAppearanceMedium" />
<View
android:layout_width="@dimen/fragment_rating_horizontal_button_spacer"
android:layout_height="match_parent" />
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:text="Butt2"
android:textAppearance="?android:textAppearanceLarge" />
<View
android:layout_width="@dimen/fragment_rating_horizontal_button_spacer"
android:layout_height="match_parent" />
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:text="Butt3"
android:textAppearance="?android:textAppearanceLarge" />
</LinearLayout>
问题是此布局中的第一个按钮与其他两个按钮无法正确对齐。我确定这是因为第一个按钮上有中等文字大小。
我想在第一个按钮中显示一个较长的字符串,只需使用较小的文本并保持3个按钮相同。
如何修复路线?
编辑。添加额外的屏幕截图以显示夸大的问题:
答案 0 :(得分:1)
为第一个带有小文本大小的按钮提供重量并使用layout_gravity
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="horizontal" >
<Button
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_weight=".1"
android:text="This is a very good day "
android:layout_gravity="center"
android:textAppearance="?android:textAppearanceMedium" />
<Button
android:layout_width="0dp"
android:layout_height="100dp"
android:text="Butt2"
android:layout_weight=".1"
android:textAppearance="?android:textAppearanceLarge" />
<Button
android:layout_width="0dp"
android:layout_height="100dp"
android:text="Butt3"
android:layout_weight=".1"
android:textAppearance="?android:textAppearanceLarge" />
</LinearLayout>
答案 1 :(得分:0)
也许你可以试试这样的事情
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/activity_horizontal_margin">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100dp"
android:orientation="horizontal"
android:layout_gravity="bottom|center_horizontal">
<Button
android:layout_width="100dp"
android:layout_height="match_parent"
android:text="Butt1"
android:textAppearance="?android:textAppearanceMedium" />
<View
android:layout_width="@dimen/fragment_rating_horizontal_button_spacer"
android:layout_height="match_parent" />
<Button
android:layout_width="100dp"
android:layout_height="match_parent"
android:text="Butt2"
android:textAppearance="?android:textAppearanceLarge" />
<View
android:layout_width="@dimen/fragment_rating_horizontal_button_spacer"
android:layout_height="match_parent" />
<Button
android:layout_width="100dp"
android:layout_height="match_parent"
android:text="Butt3"
android:textAppearance="?android:textAppearanceLarge" />
</LinearLayout>
</RelativeLayout>
答案 2 :(得分:0)
尝试这样:
根据您的要求工作。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_margin="@dimen/activity_horizontal_margin"
android:orientation="horizontal">
<Button
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_margin="3dp"
android:layout_weight="1"
android:text="Button1"
android:layout_gravity="center"
android:textSize="10dp" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_margin="3dp"
android:layout_gravity="center"
android:layout_weight="1"
android:text="Button2"
android:textSize="20dp" />
<View
android:layout_width="0dp"
android:layout_height="match_parent" />
<Button
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_margin="3dp"
android:layout_weight="1"
android:layout_gravity="center"
android:text="Button3"
android:textSize="20dp"
/>
</LinearLayout>
并且对于您的最新要求(即如果您更改了文本大小,按钮对齐未更改),只需使用
android:layout_gravity="center"
每个按钮。
<强>输出: - 强>