在线性布局中,在Textview中向左绘制,在文本和图像之间留出更多空间

时间:2016-06-13 12:37:19

标签: android android-layout textview android-linearlayout drawable

我正在使用LinearLayout和2 TextView s。将weight分配给TextView。一个TextView在左边对齐,另一个在右角。我给layout:gravity="right",因此文本在右侧对齐。 TextView中的可绘制图标与左侧对齐,并在文本和图标之间留出更多空间。

我不想为此使用RelativeLayout

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:layout_gravity="center_vertical"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_apt_time"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp"
            android:layout_weight="1"
            android:gravity="left"
            android:drawableLeft="@mipmap/time"
            android:text="12 : 30 PM" />

        <TextView
            android:id="@+id/tv_apt_date"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="10dp"
            android:layout_weight="1"
            android:layout_gravity="right|center_vertical"
            android:gravity="right"
            android:drawableLeft="@mipmap/time"
            android:drawablePadding="5dp"
            android:text="23-Sept-2015" />

    </LinearLayout>

3 个答案:

答案 0 :(得分:0)

而不是drawableLeft使用水平方向的LinearLayout,然后将ImageView和TextView放在那里。

编辑:这是一个例子。

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

    <ImageView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:background="#0000"
        android:src="SOURCE"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="TEXT" />

</LinearLayout>

答案 1 :(得分:0)

左右移动你的边距和你的重力,在你的linearLayout上放一个weightSum并用重量放置你的元素

答案 2 :(得分:0)

仔细检查你的图像,我认为它有一些透明的部分。根据您的代码,左边没有空格。 如果您不希望文本和图片图标之间存在差距,请为两个Textviews设置重力。