2012-10-10 21 views
1

我無法在列表視圖中對齊imageview下方的文本。下面是我的代碼。如何在imageview下方將textview居中對齊作爲列表視圖中的標題

<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文本添加文本和圖像。請幫我解決這個問題。

回答

5

只需使用layout_centerHorizontal屬性在你的TextView:

<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" /> 
+0

感謝快速反應@Sam,但沒有成功。文本仍然是正確的對齊不居中:( –

+1

我看到,有兩個選擇:或者將您的RelativeLayout的寬度更改爲'wrap_content'或將您的ImageView的寬度更改爲'match_parent' – Sam

+0

將ImageView的寬度更改爲match_parent後,山姆爲您提供寶貴幫助 –

0

在TextView的變化

android:layout_width="wrap_content" 

android:layout_width="match_parent" 
0

您應該使用線性佈局設置方向屬性。設置方向垂直的直線佈局和設置ImageView的屬性android:layout_gravity="center" 下面是完整的代碼:

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_marginLeft="@dimen/activity_horizontal_margin" 
     android:layout_marginRight="@dimen/activity_horizontal_margin" 
     android:layout_marginTop="@dimen/activity_horizontal_margin" 
     android:layout_marginBottom="@dimen/activity_horizontal_margin" 
     > 

     <ImageView 
      android:id="@+id/grid_item_image" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:src="@drawable/home" > 
     </ImageView> 

     <TextView 
      android:id="@+id/grid_item_label" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Cardiology" 
      android:layout_gravity="center" 
      android:layout_marginTop="5px" 
      android:textSize="20sp" > 
     </TextView> 

    </LinearLayout> 

希望這將有助於

相關問題