我正在尝试创建一个适用于平板电脑横向和纵向的网格布局。我只有2列,但我遇到了设置孩子宽度的问题。
将GridLayout
设置为match_parent
。然后,我尝试将TextView
内的GridLayout
设置为match_parent
,认为它会延伸到GridLayout
内。但我发现TextView
的宽度超出了屏幕的边缘。 (见截图)
如果删除第0列中的TextView
,它将正确拉伸。
这是我的XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/linearLayout3">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:id="@+id/textView17" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_column="7"
android:layout_row="0"
android:orientation="horizontal"
android:layout_rowSpan="21"
android:layout_gravity="center_horizontal|left"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/linearLayout4">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="119dp"
android:orientation="horizontal"
android:layout_weight="1"
android:layout_gravity="center_horizontal"
android:gravity="center_vertical|center_horizontal">
<ImageButton
android:id="@+id/phonebtn"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_gravity="center"
android:adjustViewBounds="false"
android:background="@drawable/phonebtn_cchange"
android:cropToPadding="true"
android:scaleType="fitXY" />
</LinearLayout>
<GridLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_below="@+id/linearLayout3"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:id="@+id/textView127"
android:layout_row="0"
android:layout_column="0" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:id="@+id/textView128"
android:layout_row="0"
android:layout_column="1" />
</GridLayout>
</RelativeLayout>
我认为我设定了一个重量错误,或者是一个合作范围,但我不确定。任何帮助,将不胜感激。
答案 0 :(得分:1)
您可以通过将其宽度设置为0dp并将其布局重力参数设置为&#34;填充&#34;来适合子TextView。所以GridLayout会知道,TextView的宽度与列宽无关。
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="2">
<ImageView
android:layout_height="@dimen/list_item_height"
android:src="@drawable/ic_image"/>
<TextView
android:layout_width="0dp"
android:layout_gravity="fill"
android:gravity="center_vertical"/>