Android网格布局显示

时间:2014-02-11 08:42:53

标签: java android

我在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个项目没有与行对齐,但它们都在第一列,我真的不明白这个问题。

4 个答案:

答案 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>