在gridlayout中对齐动态按钮

时间:2017-06-26 02:12:44

标签: java android

  

我正在尝试调整Grid layout中的动态按钮。

问题:

  

但是,如果文本是多行,则在行中形成按钮   不是必要的。

     

String item [] = new String [] {" item1"," item2"," item3 yes",   " ITEM4"" ITEM5"};

     

按钮[] myButton = new Button [item.length];

GridLayout scrViewButLay = (GridLayout) findViewById(R.id.grid);
    scrViewButLay.setColumnCount(4);
    scrViewButLay.setRowCount(10);

// GridLayout.LayoutParams leftMarginParams = new GridLayout.LayoutParams(        //);

 for (int index = 0; index < item.length ; index++) {


        myButton[index] = new Button(this); //initialize the button here
        myButton[index].setText(item[index]);
        myButton[index].setHeight(100);
        myButton[index].setWidth(100);
        myButton[index].setTag(index);

        scrViewButLay.addView(myButton[index]);

    }
}

output image `

3 个答案:

答案 0 :(得分:0)

我建议使用适配器,然后根据需要进行自定义 看看这个例子 http://androidexample.com/Custom_Grid_Layout_-_Android_Example/index.php?view=article_discription&aid=76

答案 1 :(得分:0)

我认为使用带有GridLayoutManager的recyclerView可以帮助你。

这篇文章https://inducesmile.com/android/android-gridlayoutmanager-with-recyclerview-in-material-design/可以帮到你。

答案 2 :(得分:0)

您只需要应用layout_gravity,因为默认值似乎是将文本对齐到相同的高度(这就是为什么它仅在具有两行的项目3上发生的原因。)

GridLayout.LayoutParams param =new GridLayout.LayoutParams();
    param.height = GridLayout.LayoutParams.WRAP_CONTENT;
    param.width = GridLayout.LayoutParams.WRAP_CONTENT;
    param.setGravity(Gravity.BOTTOM);