Java Android Studio以编程方式提供多个网格布局

Java Android Studio以编程方式提供多个网格布局,java,android,android-gridlayout,Java,Android,Android Gridlayout,我正在Android Studio中进行一个项目,在那里我有许多选项卡式片段,其中包含主细节视图,在主细节中显示一个列表,在细节中显示一个gridlayout,这些片段在xml布局中简单布局,工作得非常好。对于最终的选项卡详细视图,我需要能够显示多个单独的水平滚动单行和动态列计数gridlayouts,或GridView,每个都有一个TextView标题,并且必须以编程方式完成,因为它们可能会因主视图列表选择的不同而有所不同。这在使用集合视图的iOS上非常容易,但我在Android上找不到类似的

我正在Android Studio中进行一个项目,在那里我有许多选项卡式片段,其中包含主细节视图,在主细节中显示一个列表,在细节中显示一个gridlayout,这些片段在xml布局中简单布局,工作得非常好。对于最终的选项卡详细视图,我需要能够显示多个单独的水平滚动单行和动态列计数gridlayouts,或GridView,每个都有一个TextView标题,并且必须以编程方式完成,因为它们可能会因主视图列表选择的不同而有所不同。这在使用集合视图的iOS上非常容易,但我在Android上找不到类似的例子,我尝试过的每一件事都是在一个gridlayout中完成的,没有TextView标题。有人能提供一个简单的例子(可能有三个网格)来说明如何实现这一点吗?

protectedvoidoncreate(Bundle savedInstanceState){
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ScrollView svv = new ScrollView(this);
    svv.setLayoutParams(new ScrollView.LayoutParams(ScrollView.LayoutParams.WRAP_CONTENT, ScrollView.LayoutParams.WRAP_CONTENT));
    LinearLayout linLayout = new LinearLayout(this);
    linLayout.setOrientation(LinearLayout.VERTICAL);
    LayoutParams linLayoutParam = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
    LayoutParams lpView = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    int colcount = 20;
    int rowcount = 1;
    TextView tv;
    Button btn;
    GridLayout grd;
    GridLayout.LayoutParams gllop;
    HorizontalScrollView svh;

    for(int i = 0; i < 30; i++) {
    tv= new TextView(this);
    tv.setText("TextView " + i);
    tv.setLayoutParams(lpView);
    linLayout.addView(tv);
    grd = new GridLayout(this);
    grd.setColumnCount(colcount);
    grd.setRowCount(rowcount);
    grd.setBackgroundColor(Color.YELLOW);
        for(int j = 0; j < 20; j++) {
            gllop = new GridLayout.LayoutParams(GridLayout.spec(0), GridLayout.spec(j));
            btn = new Button(this);
            btn.setText("Button " + i +"."+j);
            grd.addView(btn, gllop);
        }
        svh = new HorizontalScrollView(this);
        svh.addView(grd);
        linLayout.addView(svh);
    }
    svv.addView(linLayout);
    setContentView(svv, linLayoutParam);

}
super.onCreate(savedInstanceState); ScrollView svv=新的ScrollView(此); svv.setLayoutParams(新的ScrollView.LayoutParams(ScrollView.LayoutParams.WRAP_内容,ScrollView.LayoutParams.WRAP_内容)); LinearLayout linLayout=新的LinearLayout(此); linLayout.setOrientation(LinearLayout.VERTICAL); LayoutParams linLayoutParam=新的LayoutParams(LayoutParams.MATCH\u父级,LayoutParams.MATCH\u父级); LayoutParams lpView=新的LayoutParams(LayoutParams.WRAP\u内容,LayoutParams.WRAP\u内容); int colcount=20; int rowcount=1; 文本视图电视; 按钮btn; 网格布局grd; GridLayout.LayoutParams gllop; 水平滚动视图svh; 对于(int i=0;i<30;i++){ tv=新文本视图(此); tv.setText(“文本视图”+i); tv.setLayoutParams(lpView); linLayout.addView(电视); grd=新网格布局(本); grd.setColumnCount(colcount); grd.setRowCount(rowcount); grd.setBackgroundColor(颜色:黄色); 对于(int j=0;j<20;j++){ gllop=newgridlayout.LayoutParams(GridLayout.spec(0),GridLayout.spec(j)); btn=新按钮(此按钮); btn.setText(“按钮”+i+”+j); grd.addView(btn、gllop); } svh=新的水平滚动视图(此); 高级副总裁addView(grd); linLayout.addView(svh); } svv.addView(linLayout); setContentView(svv、linLayoutParam); }
你的描述把我弄糊涂了。你能添加一个你想要的和/或你现在拥有的代码的截图吗?如果你需要帮助,你应该事先写一个通用的例子…非常感谢你甚至回复@Soana,我自己解决了,下面是相当简单的答案。我只是希望它能帮助其他人,这样他们就不会像我在这里得到任何帮助时遇到的问题一样