2014-04-13 58 views
0

我的RelativeLayout有一個問題有關的TextView不是中心,(只有一些對象)的Android RelativeLayout的不居中

首先,我使用ListAdapter的ListView控件。

public class ListAdapter extends ArrayAdapter<Menu> { 

    private LayoutInflater inflater; 

    public ListAdapter(Context c, ArrayList<Menu> o) { 
     super(c, 0, o); 
     inflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    @Override 
    public View getView(int position, View v, ViewGroup parent) { 
     View view = null; 
     if (v == null) { 
      view = inflater.inflate(R.layout.row, null); 
     } else { 
      view = v; 
     } 
     final Menu data = this.getItem(position); 
     TextView title = (TextView) view.findViewById(R.id.title); 
     ImageView background = (ImageView) view.findViewById(R.id.background); 
     ImageView icon = (ImageView) view.findViewById(R.id.icon); 
     TextView subtitle = (TextView) view.findViewById(R.id.subtitle); 
     subtitle.setText(data.getSubTitle()); 
     title.setText(data.getTitle()); 
     background.setImageDrawable(data.getBackground()); 
     icon.setImageDrawable(data.getIcon()); 
     return view; 
    } 
} 

和My row.xml。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<RelativeLayout 
    android:id="@+id/relativeLayout1" 
    android:layout_width="75dip" 
    android:layout_height="82dip" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" > 

    <ImageView 
     android:id="@+id/background" 
     android:layout_width="75dip" 
     android:layout_height="83dip" 
     android:src="@drawable/mediumorchid" /> 

    <ImageView 
     android:id="@+id/icon" 
     android:layout_width="35dip" 
     android:layout_height="35dip" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:src="@drawable/ic_discard" /> 
</RelativeLayout> 

<FrameLayout 
    android:id="@+id/fl1" 
    android:layout_width="75dip" 
    android:layout_height="80dip" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" > 
</FrameLayout> 

<RelativeLayout 
    android:id="@+id/width" 
    android:layout_width="fill_parent" 
    android:layout_height="80dip" 
    android:layout_alignBottom="@+id/fl1" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:layout_toLeftOf="@+id/fl1" 
    android:layout_toRightOf="@+id/fl1" 
    android:background="#ecf0f1" > 

    <RelativeLayout 
     android:id="@+id/item" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" > 

     <TextView 
      android:id="@+id/title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:layout_marginBottom="10dip" 
      android:text="Pure" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <TextView 
      android:id="@+id/subtitle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center_vertical" 
      android:layout_below="@+id/title" 
      android:layout_marginTop="5dip" 
      android:text="Small Text" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 
    </RelativeLayout> 
</RelativeLayout> 

<FrameLayout 
    android:id="@+id/frameLayout1" 
    android:layout_width="75dip" 
    android:layout_height="2dip" 
    android:layout_alignLeft="@+id/width" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/width" 
    android:background="@drawable/cdivider" > 
</FrameLayout> 

該XML的圖形設計enter image description here

但在設備(例如石斑魚),我發現這個問題。 enter image description here 在某些對象中(示例請參閱幫助〜)被正確居中。但是,其他對象沒有正確居中。

我發現這個問題的另一個設備(不同的分辨率,大小,Android版本,密度)。

我能做些什麼來解決這個問題?

+0

感謝您上傳的圖片! – WindSekirun

回答

1

試試這個..

添加android:layout_centerHorizontal="true"字幕TextView

 <TextView 
      android:id="@+id/subtitle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/title" 
      android:layout_marginTop="5dip" 
      android:gravity="center_vertical" 
      android:layout_centerHorizontal="true" 
      android:text="Small Text" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 
+0

謝謝,它的工作! – WindSekirun

+0

@Sopiane很高興幫助。快樂編碼。 – Hariharan

0

或本

<TextView 
      android:id="@+id/subtitle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:layout_below="@+id/title" 
      android:layout_marginTop="5dip" 
      android:text="Small Text" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 
+0

不,你不能使用'android:layout_centerVertical =「true」'它會重疊上面的'TextView'。 – Hariharan