android gridlayout列宽超过父(gridlayout)宽度

时间:2016-06-14 09:43:59

标签: android android-layout android-view textview android-gridlayout

我正在使用gridlayout对我的观点进行分组。在里面,我有两列。一列的子项为relativelayout,另一列的子级为linearlayout

我的linearlayout方向为vertical。它有两个视图,textview和imageview。

问题是当我在textview中键入文字并且文字很长时,我看不到

  • textview
  • 中的某些字符
  • imageview低于textview

textview宽度正在扩展且并在进入第二行(textview为muitiline)之前隐藏其中一些字符和imageview

我不希望使用保证金来解决此问题,因为如果我使用它,并且textview中的文字很短,则会在右侧显示不需要的空格textview。

    <android.support.v7.widget.GridLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:columnCount="2"
        app:rowCount="1" >

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_gravity="fill" >
        </RelativeLayout>

       <LinearLayout
           android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_gravity="fill">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="12345...50" >
        </TextView>

        <ImageView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:src="@drawable/vladmir putin"/>

     </LinearLayout>

     </android.support.v7.widget.GridLayout>

如何解决textview宽度超出gridlayout宽度的问题? 如果我输入1234一切正常。但如果我从1键入50,我就无法看到从3032和imageview的某些数字?

1 个答案:

答案 0 :(得分:1)

为解决此问题,我使用RelativeLayout而不是LinearLayout,并将textview对准imageview的开头

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.GridLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:columnCount="2"
app:rowCount="1"
>

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_gravity="fill" >
</RelativeLayout>

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_gravity="fill">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/profile"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:text="12345...50"
        android:layout_toStartOf="@id/profile">
    </TextView>

    <ImageView
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:src="@drawable/profile"
        android:id="@+id/profile"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true" />

</RelativeLayout>