LinearLayout使用drawableLeft将文本与中心视图对齐

时间:2015-06-30 14:15:24

标签: android android-layout

我无法将图像与textview对齐。

我希望它看起来像: expected result

它实际上是什么样的:

Actual Result

请忽略背景颜色,图像尺寸。该问题与将图像与文本视图对齐有关。

我尝试过以下代码:

<LinearLayout 
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:orientation="horizontal"
           android:weightSum="2">
           <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:drawableStart="@drawable/icon_checkin"
                android:gravity="center" 
                android:text="@string/check_in"
                android:drawablePadding="-20sp"
                style="@style/roboto4F4F4Flight21"
               />
           <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:drawableLeft="@drawable/icon_checkout"
                android:text="@string/check_out"
                style="@style/roboto4F4F4Flight21"
                android:gravity="center" 
               />
       </LinearLayout>

注意:我使用过android:drawablePadding="-20sp"但没有成功。

也尝试过:

       <TableLayout 
                android:id="@+id/linear_today_attendance"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
                    android:stretchColumns = "*"
               >
               <TableRow 
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content">
               <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:drawableStart="@drawable/icon_checkin"
                    android:gravity="center" 
                    android:text="@string/check_in"
                    android:drawablePadding="-20sp"
                    style="@style/roboto4F4F4Flight21"
                   />
               <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:drawableLeft="@drawable/icon_checkout"
                    android:text="@string/check_out"
                    style="@style/roboto4F4F4Flight21"
                    android:gravity="center" 
                   />
               </TableRow>
       </TableLayout>

2 个答案:

答案 0 :(得分:1)

不是最干净的选择,但应该有效:

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="2">

    <LinearLayout 
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableStart="@drawable/icon_checkin"
            android:text="@string/check_in"
            style="@style/roboto4F4F4Flight21" />
    </LinearLayout>

    <LinearLayout 
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableStart="@drawable/icon_checkout"
            android:text="@string/check_out"
            style="@style/roboto4F4F4Flight21" />
    </LinearLayout>
</LinearLayout>

答案 1 :(得分:0)

TextView包裹在LinearLayout为我工作。试一试。

// FYI, all columns are stretched using android:stretchColumns="*"
<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center">

        <TextView
            android:gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/ic_add_black_24dp"/>
    </LinearLayout>

    // and again same thing for the next item
    <LinearLayout...>
        <TextView.../>
    </LinearLayout>

</TableRow>