2013-08-26 51 views
1

我在我的Activity中有一個ListView。佈局超出了正確的邊距

每個ListView項的使用(在陣列適配器)這樣的佈局:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_gravity="top" 
    android:background="#ffffff" 
    android:columnCount="2" 
    android:rowCount="1" > 

    <GridLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_column="0" 
     android:layout_gravity="left|top" 
     android:layout_margin="5dp" 
     android:layout_row="0" 
     android:rowCount="3" > 

     <TextView 
      android:id="@+id/settingsHeader" 
      android:layout_column="0" 
      android:layout_gravity="left|top" 
      android:layout_row="0" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <TextView 
      android:id="@+id/settingsContent" 
      android:layout_column="0" 
      android:layout_gravity="left|top" 
      android:layout_row="2" 
      android:layout_width="match_parent" 
      android:text="Small Text" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 
    </GridLayout> 

    <Switch 
     android:id="@+id/settingsToggle" 
     android:layout_column="1" 
     android:layout_marginRight="5dp" 
     android:layout_gravity="center_vertical|right" 
     android:layout_row="0"/> 

</GridLayout> 

enter image description here

但我的問題是,該佈局是超出右頁邊距。我認爲這是因爲TextView settingsContent不包裹文本。我怎麼解決這個問題?

回答

0

將這些代碼添加到您的TextView settingsContent中。

android:ellipsize="end" 
android:ems="9" 
android:lines="1" 
android:singleLine="true" 

將第一個GridLayout的寬度設置爲'fill_parent'。

XML將是這樣的:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_gravity="top" 
android:background="#ffffff" 
android:columnCount="2" 
android:rowCount="1" > 

<GridLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="0" 
    android:layout_gravity="left|top" 
    android:layout_margin="5dp" 
    android:layout_row="0" 
    android:rowCount="3" > 

    <TextView 
     android:id="@+id/settingsHeader" 
     android:layout_column="0" 
     android:layout_gravity="left|top" 
     android:layout_row="0" 
     android:ellipsize="end" 
     android:ems="9" 
     android:lines="1" 
     android:singleLine="true" 
     android:text="Large Text" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/settingsContent" 
     android:layout_column="0" 
     android:layout_gravity="left|top" 
     android:layout_row="2" 
     android:layout_width="match_parent" 
     android:ellipsize="end" 
     android:ems="9" 
     android:lines="1" 
     android:singleLine="true" 
     android:text="Small Text" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 
</GridLayout> 

<Switch 
    android:id="@+id/settingsToggle" 
    android:layout_column="1" 
    android:layout_marginRight="5dp" 
    android:layout_gravity="center_vertical|right" 
    android:layout_row="0"/> 

這將可以幫助你。

+0

OP將被通知當u已張貼解答...沒有必要發表評論下問題每次你回答... –

0

試試這個..

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_gravity="top" 
android:background="#ffffff" 
android:columnCount="2" 
android:rowCount="1" > 

<GridLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="0" 
    android:layout_gravity="left|top" 
    android:layout_margin="5dp" 
    android:layout_row="0" 
    android:rowCount="3" > 

    <TextView 
     android:id="@+id/settingsHeader" 
     android:layout_column="0" 
     android:layout_gravity="left|top" 
     android:layout_row="0" 
     android:text="Large Text" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/settingsContent" 
     android:layout_column="0" 
     android:layout_gravity="left|top" 
     android:layout_row="2" 
     android:layout_width="match_parent" 
     android:text="Small Text" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 
</GridLayout> 

<Switch 
    android:id="@+id/settingsToggle" 
    android:layout_column="1" 
    android:layout_marginRight="5dp" 
    android:layout_gravity="center_vertical|right" 
    android:layout_row="0"/> 

0

你可以嘗試下面的代碼,這將給你相同的外觀..

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:gravity="center"> 
    <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:gravity="center"> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:orientation="horizontal" 
     android:layout_margin="5dp"> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.8" 
     android:gravity="center" 
     android:orientation="vertical" 
     android:layout_margin="2dp"> 

    <TextView 
     android:id="@+id/settingsHeader" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="3dp" 
     android:textStyle="bold" 
     android:textColor="#696969" 
     android:layout_gravity="center" 
     android:text="hello how are you guys"/> 

    <TextView 
     android:id="@+id/settingsContent" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="3dp" 
     android:textColor="#9C9A9A" 
     android:layout_gravity="center" 
     android:text="I am fine wat abt u"/> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.2" 
     android:gravity="center|right" 
     android:orientation="vertical" 
     android:layout_margin="5dp"> 

     <Switch 
     android:id="@+id/settingsToggle" 
     android:layout_width="60dp" 
     android:layout_height="25dp" 
     android:layout_margin="3dp" 
     android:textColor="#FFFFFF" 
     android:gravity="center" 
     android:text="Error" 
     android:background="#942B2A"/> 

    </LinearLayout> 

    </LinearLayout> 

    </LinearLayout> 
</LinearLayout>