【问题标题】:Layout is beyond the right margin布局超出右边距
【发布时间】:2013-08-28 13:09:22
【问题描述】:

我的 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>

但我的问题是,布局超出了右边距。我认为这是因为 TextView settingsContent 没有换行。我该如何解决这个问题?

【问题讨论】:

    标签: android listview layout gridview


    【解决方案1】:

    将这些代码添加到您的 TextView 设置内容中。

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

    这可能会对你有所帮助。

    【讨论】:

    • 当您发布答案时会通知OP...无需在每次您回答时都在问题下发表评论...
    【解决方案2】:

    试试这个..

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

    【讨论】:

      【解决方案3】:

      你可以试试下面的代码,它会给你同样的外观..

      <?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>
      

      【讨论】:

        猜你喜欢
        • 2014-03-18
        • 1970-01-01
        • 1970-01-01
        • 2017-05-10
        • 1970-01-01
        • 2019-01-28
        • 1970-01-01
        • 1970-01-01
        • 2018-08-28
        相关资源
        最近更新 更多