Java Android Studio以编程方式提供多个网格布局
我正在Android Studio中进行一个项目,在那里我有许多选项卡式片段,其中包含主细节视图,在主细节中显示一个列表,在细节中显示一个gridlayout,这些片段在xml布局中简单布局,工作得非常好。对于最终的选项卡详细视图,我需要能够显示多个单独的水平滚动单行和动态列计数gridlayouts,或GridView,每个都有一个TextView标题,并且必须以编程方式完成,因为它们可能会因主视图列表选择的不同而有所不同。这在使用集合视图的iOS上非常容易,但我在Android上找不到类似的例子,我尝试过的每一件事都是在一个gridlayout中完成的,没有TextView标题。有人能提供一个简单的例子(可能有三个网格)来说明如何实现这一点吗?Java Android Studio以编程方式提供多个网格布局,java,android,android-gridlayout,Java,Android,Android Gridlayout,我正在Android Studio中进行一个项目,在那里我有许多选项卡式片段,其中包含主细节视图,在主细节中显示一个列表,在细节中显示一个gridlayout,这些片段在xml布局中简单布局,工作得非常好。对于最终的选项卡详细视图,我需要能够显示多个单独的水平滚动单行和动态列计数gridlayouts,或GridView,每个都有一个TextView标题,并且必须以编程方式完成,因为它们可能会因主视图列表选择的不同而有所不同。这在使用集合视图的iOS上非常容易,但我在Android上找不到类似的
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,我自己解决了,下面是相当简单的答案。我只是希望它能帮助其他人,这样他们就不会像我在这里得到任何帮助时遇到的问题一样