Android 将视图动态添加到GridLayout时对齐不正确
通过XML添加按钮时-一切正常Android 将视图动态添加到GridLayout时对齐不正确,android,android-layout,grid-layout,android-gridlayout,Android,Android Layout,Grid Layout,Android Gridlayout,通过XML添加按钮时-一切正常 动态添加按钮时(按代码)-缺少对齐,按钮未占据列的完整宽度 GridLayout gl=(GridLayout)findViewById(R.id.social\u gl\u content); LayoutFlater充气机=(LayoutFlater)getSystemService(布局充气机服务); 对于(int i=0;i
动态添加按钮时(按代码)-缺少对齐,按钮未占据列的完整宽度
GridLayout gl=(GridLayout)findViewById(R.id.social\u gl\u content);
LayoutFlater充气机=(LayoutFlater)getSystemService(布局充气机服务);
对于(int i=0;i
试试这个:
LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
b.setLayoutParams(parms);
而不是传递null:
View v=充气机。充气(R.layout.grid_项,空)代码>
传递parentView,以便v具有正确的布局参数
View v=充气机。充气(R.layout.grid_项,总图,假)代码>请看这里。。尝试此LinearLayout.LayoutParams parms=新建LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.WRAP_内容);b、 setLayoutParams(parms);我复制了原来的问题,然后我尝试了这个解决方案,结果出现了一个空白屏幕。
GridLayout gl = (GridLayout) findViewById(R.id.social_gl_content);
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
for (int i = 0 ; i < strs.length ; i++) {
View v = inflater.inflate(R.layout.grid_item, null);
Button b = (Button) v.findViewById(R.id.button);
b.setText(strs[i]);
if ( i % 2 ==0) {
b.setBackgroundColor(Color.BLACK);
}else{
b.setBackgroundColor(Color.BLUE);
}
gl.addView(v);
}
LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
b.setLayoutParams(parms);