我有3个项目:
图像视图,TextView和CheckBox
我希望图像视图(信息图标)显示在GridLayout的最左侧,文本显示在屏幕中央,复选框显示在最右侧,尽管设置了我的正确的列图像仍然堆叠在彼此的顶部,如图所示;任何想法?
custome_row.xml
<?xml version="1.0" encoding="utf-8"?>
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/customRow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:alignmentMode="alignMargins"
android:useDefaultMargins="true"
android:columnOrderPreserved="false"
android:rowCount="2"
android:columnCount="3"
android:orientation="horizontal">
<ImageView
android:id="@+id/rowImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_row="0"
android:layout_marginTop="6dp"
android:src="@drawable/ic_info_outline" />
<TextView
android:id="@+id/rowTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/colorPrimary"
android:layout_row="0"
android:layout_column="2"
android:layout_marginLeft="8dp"
android:textSize="20dp" />
<CheckBox
android:id="@+id/completedCheck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="2"
android:layout_row="0"/>
</GridLayout>
答案 0 :(得分:2)
您的代码:您已使用CheckBox
&amp;的相同代码TextView
:
android:layout_row="0"
android:layout_column="2"
您还可以采用布局重力:
使用以下代码:
<?xml version="1.0" encoding="utf-8"?>
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/customRow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:alignmentMode="alignMargins"
android:useDefaultMargins="true"
android:columnOrderPreserved="false"
android:rowCount="2"
android:columnCount="3"
android:orientation="horizontal">
<ImageView
android:id="@+id/rowImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_row="0"
android:layout_marginTop="6dp"
android:src="@mipmap/ic_launcher" />
<TextView
android:layout_columnWeight="1"
android:id="@+id/rowTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/colorPrimary"
android:layout_row="0"
android:text="TextView"
android:layout_column="1"
android:layout_marginLeft="8dp"
android:textSize="20dp" />
<CheckBox
android:layout_columnWeight="1"
android:text="android"
android:id="@+id/completedCheck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="2"
android:layout_row="0"/>
答案 1 :(得分:1)
所以我发现你的代码存在两个问题
layout_gravity
。以下是您使用的修改后的代码
<?xml version="1.0" encoding="utf-8"?>
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/customRow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:alignmentMode="alignMargins"
android:useDefaultMargins="true"
android:columnOrderPreserved="false"
android:rowCount="2"
android:columnCount="3"
android:orientation="horizontal">
<ImageView
android:id="@+id/rowImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_row="0"
android:layout_marginTop="6dp"
android:src=""
tools:src="@tools:sample/avatars"
android:layout_gravity="start|center_vertical"
/>
<TextView
android:id="@+id/rowTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#008269"
android:layout_row="0"
android:layout_column="1"
android:textSize="20dp"
android:text="Testing"
android:layout_gravity="center"
/>
<CheckBox
android:id="@+id/completedCheck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="2"
android:layout_row="0"
android:layout_gravity="end|center_vertical"
/>
</GridLayout>