2 nana4ever nana4ever 于 2012.11.15 14:21 提问

Listview中在imageview视图下面居中对齐textview

Listview中不能在imageview视图下面对齐文本。以下是我使用的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"     >

    <ImageView 
            android:id="@+id/icon"
            android:layout_width="wrap_content"
            android:layout_height="50dp" />


    <TextView 
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/icon"
            android:layout_alignParentBottom="true"  
            android:gravity="center"
            android:singleLine="true"
            android:layout_marginLeft="20dp"
            android:textColor="@color/white"/>


</RelativeLayout>

ListView是这样的:

<ListView    android:id="@+id/grid_view"
            android:layout_width="wrap_content"
            android:layout_height="280sp"
            android:layout_alignParentLeft="true"
            android:layout_marginTop="20dp"
            android:layout_toLeftOf="@+id/imgView"
            android:scrollbars="none"
            android:divider="@null"
            android:gravity="center" >
</ListView>

从数组中用java代码来动态地添加文本和图像:

@Override
    public View getView(int position, View convertView, ViewGroup parent) {         
        ViewHolder holder;
        if (convertView == null) {
            convertView = l_Inflater.inflate(R.layout.gridview_layout, null);
            holder = new ViewHolder();
            holder.imageName = (TextView) convertView.findViewById(R.id.name);
            holder.image = (ImageView) convertView.findViewById(R.id.icon);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }


        holder.imageName.setText(name[position]);
        holder.image.setImageResource(mThumbIds[position]);

        return convertView;
    }

Imageview下面的textview还是没有居中对齐。请大家帮我解决这个问题。

2个回答

myq_26
myq_26   2012.11.15 17:19
已采纳

在TextView中使用layout_centerHorizontal属性:

<TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/icon"
        android:layout_alignParentBottom="true"  
        android:layout_centerHorizontal="true"
        android:singleLine="true"
        android:textColor="@color/white" />
myq_26
myq_26 不客气,如果我的回答解决了你的问题,那么就采纳吧
5 年多之前 回复
nana4ever
nana4ever 把ImageView's width变成match_parent,就实现了text文本居中对齐。谢谢 myq_26 这么好的回答。
5 年多之前 回复
myq_26
myq_26 我知道了,两种选择:要不把 RelativeLayout's width改变成wrap_content;或者把ImageView's width变成match_parent。
5 年多之前 回复
nana4ever
nana4ever 谢谢你的回答,可是使用这段代码还没成功。text文本还是右对齐,不是居中对齐。
5 年多之前 回复
hxn_217
hxn_217   2012.11.19 11:05

在textview布局中把android:layout_width="wrap_content" 变成android:layout_width="match_parent"

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!