重力中心不在LinearLayout中工作

时间:2017-03-23 13:07:24

标签: android android-linearlayout android-imageview

我有LinearLayout水平方向。高度为32 dp。我尝试在中心位置插入textview的文本,but i have like this result

这是我的来源

               <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="32dp"
                    android:layout_marginLeft="16dp"
                    android:orientation="horizontal"
                    >

                    <ImageView
                        android:layout_width="32dp"
                        android:layout_height="32dp"
                        card_view:srcCompat="@mipmap/departure_icon"
                        android:id="@+id/departure_img"
                        android:layout_alignTop="@+id/departure_day_large"
                        android:layout_alignParentLeft="true"
                        android:layout_alignParentStart="true" />
                    <TextView
                        android:id="@+id/departure_day_large"
                        android:layout_width="wrap_content"
                        android:layout_height="32dp"
                        android:text="28"
                        android:layout_marginLeft="5dp"
                        android:textColor="#4d4d4d"
                        android:gravity="center"
                        android:textSize="32dp"
                        android:layout_centerHorizontal="true" />
                </LinearLayout>

正如你所看到我无法在中心位置插入28,imageview和textview的高度都是32 dp,我想插入我的textview center.How我可以与ImageView水平对齐吗?

3 个答案:

答案 0 :(得分:0)

您已指定android:textSize="32dp" - 这就是问题所在。 设定TextViewLinearLayout的身高wrap_content

此外,您最好使用sp指定文字大小 - 与比例相关的像素。如果你希望你的TextView特别是那么多,那么你必须提高LinearLayout的身高wrap_content,因为你现在不能提高TextView的高度。取决于设备的屏幕尺寸。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:gravity="center_vertical"
        android:orientation="horizontal">

    <ImageView
            android:layout_width="32dp"
            android:layout_height="wrap_content"
            app:srcCompat="@mipmap/departure_icon"
            android:id="@+id/departure_img"
            android:layout_alignTop="@+id/departure_day_large"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"/>

    <TextView
            android:id="@+id/departure_day_large"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="28"
            android:layout_marginLeft="5dp"
            android:textColor="#4d4d4d"
            android:textSize="32sp"
            android:layout_centerHorizontal="true"/>
</LinearLayout>

答案 1 :(得分:0)

更改TextView layout_width = match_parent

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="32dp"
            android:layout_marginLeft="16dp"
            android:orientation="horizontal"
            >

            <ImageView
                android:layout_width="32dp"
                android:layout_height="32dp"
                card_view:srcCompat="@mipmap/departure_icon"
                android:id="@+id/departure_img"
                android:layout_alignTop="@+id/departure_day_large"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />
            <TextView
                android:id="@+id/departure_day_large"
                android:layout_width="match_parent"
                android:layout_height="32dp"
                android:text="28"
                android:layout_marginLeft="5dp"
                android:textColor="#4d4d4d"
                android:gravity="center"
                android:textSize="32dp"
                android:layout_centerHorizontal="true" />
        </LinearLayout>

答案 2 :(得分:0)

您应该只使用相对布局

更改父布局
<RelativeLayout
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp">

    <ImageView
            android:layout_width="32dp"
            android:layout_height="wrap_content"
            app:srcCompat="@mipmap/departure_icon"
            android:id="@+id/departure_img"
            android:layout_alignTop="@+id/departure_day_large"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"/>

    <TextView
            android:id="@+id/departure_day_large"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="28"
            android:layout_marginLeft="5dp"
            android:textColor="#4d4d4d"
            android:textSize="32sp"
            android:layout_centerHorizontal="true"/>
</RelativeLayout>