TextView重力属性不起作用

时间:2014-12-05 12:08:36

标签: android android-layout android-listview textview gravity

我在LinearLayout中有一个textView,它显示的文本并不总是在中心,即使我使用gravity =" center"属性。我还使用" match_parent。

设置了layou_width

此textView位于LinearLayout中,该LinearLayout位于视图的父LinearLayout中。

我的textView位于ListView中,代表项目行的结尾。

我的适配器使用ViewHolder模式。

在这里,我真的不明白为什么有时文字是中心的,有时它在左边。

这里有2个不同状态的视图的屏幕截图,您可以在其中看到对齐问题:

example1

example2

example3

我想拥有什么: 这里只是关于文本现在或在这个地方显示的时间,我想只在中心显示这个文本,有时它显示在左边,你可以在上面的截图中看到

good result

ListView布局:

<ListView
                    android:id="@+id/list"
                    android:layout_width="match_parent"
                    android:layout_height="fill_parent"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentRight="true"
                    android:layout_below="@+id/dialogTitle"
                    android:listSelector="@drawable/listitem_selector"
                    tools:listitem="@layout/item_customer_in_queue">
                </ListView>

项目布局:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/item_in_queue_list"
              android:layout_width="match_parent"
              android:layout_height="@dimen/in_queue_item_height"
              android:minHeight="@dimen/in_queue_item_height"
              android:background="@color/bckg"
              android:orientation="vertical">

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.95">

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

            <ImageView.../>
            <ImageView.../>
            <ImageView.../>

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

            <ImageView.../>
            <ImageView.../>

        </RelativeLayout>

        <TextView.../>
        <TextView.../>
        <TextView.../>

        <LinearLayout                                 <=here my LinearLayout of my issue
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">
            <View
                    android:layout_width="fill_parent"
                    android:layout_height="20dp"
                    android:layout_weight="0.1"
                    android:layout_gravity="bottom"/>
            <TextView
                    android:id="@+id/list_dueTime"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"                 <=here my issue
                    android:text="due"
                    android:layout_weight="0.8"
                    android:textColor="@color/dark_grey"
                    android:textAppearance="?android:attr/textAppearanceSmall" />
         </LinearLayout>

    </LinearLayout>

    <ProgressBar.../>

</LinearLayout>

3 个答案:

答案 0 :(得分:3)

尝试这个: 在这种情况下,我已经将重力提供给文本视图的父级,并更改了文本视图宽度以包装内容 。 。 。 。 。

 <LinearLayout                                
            android:layout_width="match_parent"
            android:layout_height="wrap_content" 
                android:gravity="center"  
            android:orientation="vertical"> 
        <View 
                android:layout_width="fill_parent" 
                android:layout_height="20dp" 
                android:layout_weight="0.1" 
                android:layout_gravity="bottom"/> 
        <TextView 
                android:id="@+id/list_dueTime" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content" 
                android:text="due" 
                android:layout_weight="0.8" 
                android:textColor="@color/dark_grey" 
                android:textAppearance="?android:attr/textAppearanceSmall" /> 
     </LinearLayout> 

。 。 。

答案 1 :(得分:0)

当您谈论对齐“中心”时,中心由视图的宽度决定。为了帮助您进行调试,您可以向视图添加彩色背景并查看其边界。

答案 2 :(得分:0)

制作布局xml并粘贴以下代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="80dp"
    android:weightSum="1" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginRight="5dp"
        android:layout_weight="0.4"
        android:background="#f0f0f0" >

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_weight="0.6"
        android:background="#f0f0f0"
        android:layout_height="match_parent" >

        <TextView
            android:id="@+id/txt_now"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="5dp"
            android:textSize="18sp"
            android:text="Now" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="5dp"
            android:text="12 Mins Overdue"
            android:textAppearance="?android:attr/textAppearanceSmall" />

    </RelativeLayout>

</LinearLayout>