Android线性布局错位

时间:2017-04-29 10:18:35

标签: android android-layout alignment android-linearlayout

我尝试使用“线性布局”创建一个简单的布局,其中四个元素排成一行,固定高度为30dp。 elemens是TextView,Button,另一个TextView和另一个Button。但是,第二个textview元素未对齐,因为它有一个marginTop属性设置为几个dp。

我试图强迫利润为零,但无济于事。你能救我吗?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/x"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <TextView
        android:id="@+id/aod_division_name"
        android:layout_width="80dp"
        android:layout_height="30dp"
        android:layout_marginStart="5dp"
        android:gravity="center|start"
        android:text="@string/add"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        android:id="@+id/aod_division_minusDivisionTotalButton"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:padding="0dp"
        android:text="@string/minus" />

    <TextView
        android:id="@+id/aod_division_totalValue"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        android:id="@+id/aod_division_plusDivisionTotalButton"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:gravity="center"
        android:padding="0dp"
        android:text="@string/plus" />

</LinearLayout>

Screenshot of the layout

2 个答案:

答案 0 :(得分:1)

只需将此属性android:gravity="center"添加到第二个文字视图即可。

如果您仍然遇到问题,请尝试在RelativeLayout中添加TextView和按钮,并且可以使用android:layout_toRightOf属性来完美对齐。像这样的东西

<RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/aod_division_minusDivisionTotalButton"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:text="-" />

        <TextView
            android:id="@+id/aod_division_totalValue"
            android:layout_toRightOf="@+id/aod_division_minusDivisionTotalButton"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <Button
            android:id="@+id/aod_division_plusDivisionTotalButton"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_toRightOf="@+id/aod_division_totalValue"
            android:gravity="center"
            android:padding="0dp"
            android:text="+" />

    </RelativeLayout>

上面的UI看起来像这样

Clik here to view the image

答案 1 :(得分:-1)

试试这个

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/x"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/aod_division_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="5dp"
        android:gravity="center"
        android:text="Add"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        android:id="@+id/aod_division_minusDivisionTotalButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Minus" />

    <TextView
        android:id="@+id/aod_division_totalValue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="asaas"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        android:id="@+id/aod_division_plusDivisionTotalButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Plus" />

</LinearLayout>