我在Android应用程序中使用GridLayout但是我有显示问题,
我使用setColumnCount有3列,因为我必须每行添加3个元素,所以它应该对齐。
layout1 = new GridLayout(this);
layout1.setColumnCount(3);
//In a loop later in the code :
layout1.addView(textView1);
layout1.addView(cb);
layout1.addView(textView2);
3个项目没有与行对齐,但它们都在第一列,我真的不明白这个问题。
答案 0 :(得分:1)
将LayoutParams用于子视图
GridLayout gridLayout = new GridLayout(this);
gridLayout.setColumnCount(colCount);
gridLayout.setRowCount(rowCount);
GridLayout.LayoutParams third = new GridLayout.LayoutParams(0, 0);
textView1.setLayoutParams(third);
gridLayout.addView(textView1, third);
GridLayout.LayoutParams fourth = new GridLayout.LayoutParams(0, 1);
cb.setLayoutParams(fourth);
gridLayout.addView(cb, fourth);
GridLayout.LayoutParams fifth = new GridLayout.LayoutParams(0, 2);
textView2.setLayoutParams(fifth );
gridLayout.addView(textView2, fifth);
答案 1 :(得分:0)
您应指定哪个单元格添加 addView 方法中的哪个视图。关于 GridLayout.addView 的This doc可以为您提供帮助。
答案 2 :(得分:0)
也许如果它是静态的并且它总是3个项目,你可以在xml中设置一个水平方向的LinearLayout。
答案 3 :(得分:0)
<GridView
android:id="@+id/photo_grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:numColumns="3" >
</GridView>
制作1个自定义xml:
<?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="match_parent"
android:orientation="vertical"
>
<ImageView
android:id="@+id/img_photo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:layout_margin="5dp"
android:src="@drawable/img_photo_caption" />
</LinearLayout>