我正在尝试使用gridlayout制作GUI,并且我希望每个GUI元素行均匀分布,以便它们填满整个屏幕,但是遵循xml代码会导致前三行仅覆盖屏幕的30%,最后一个按钮覆盖70 %屏幕边距。是什么导致了这个问题,因为我已经指定行数为4?
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="......"
android:rowCount="4"
android:columnCount="2">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Mobile"
android:layout_marginLeft="30dp"/>
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="phone"
android:ems="10"
android:layout_gravity="center_horizontal" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Email"
android:layout_marginLeft="30dp"/>
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:ems="10"
android:layout_gravity="center_horizontal" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Password"
android:layout_marginLeft="30dp"/>
<EditText
android:id="@+id/editText4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword"
android:layout_gravity="center_horizontal" />
<Button
android:id="@+id/button8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login"
android:onClick="Onclick_log"
android:layout_columnSpan="2"
android:layout_gravity="center"/>
</GridLayout>
答案 0 :(得分:1)
在所有观看次数中使用android:layout_rowWeight="1"
参数。
答案 1 :(得分:0)
您应该使用ListAdapter
根据GridView的Google文档填充GridView
的项目:
GridView 是一个以二维方式显示项目的ViewGroup, 可滚动的网格。网格项自动插入到 使用 ListAdapter 进行布局。
因此您无法在GridView
内手动添加项目。
如果您希望拥有相同高度的行,则可以使用类似LinearLayout
的内容,并将其子layout_height
设置为0dp
,将layout_weight
设置为相等的值1.这是一个有4行的样本,每行是LinearLayout
,但诀窍是将它们的高度设置为0dp
并对所有行使用相等的权重:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<!-- row 1-->
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<!-- row 2-->
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<!-- row 3-->
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<!-- row 4-->
</LinearLayout>
</LinearLayout>