Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将视图动态添加到GridLayout时对齐不正确_Android_Android Layout_Grid Layout_Android Gridlayout - Fatal编程技术网

Android 将视图动态添加到GridLayout时对齐不正确

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

通过XML添加按钮时-一切正常


动态添加按钮时(按代码)-缺少对齐,按钮未占据列的完整宽度

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);