如果我使用target-sdk =“23”,一切都很好。以上所有,所以从“24”开始,我遇到的问题是我的GridLayout(不是GridView)根本没有显示(应用程序也没有崩溃或显示错误)。它只是隐形。
里面的CHelper级:
public static GridLayout.LayoutParams lParamsGrid = new GridLayout.LayoutParams(GridLayout.spec(GridLayout.UNDEFINED,GridLayout.FILL, 1f), GridLayout.spec(GridLayout.UNDEFINED,GridLayout.FILL, 1f));
public static GridLayout layoutGrid = null;
public static void init(Activity a_)
{
CHelper.layoutGrid = new GridLayout(a_);
lParamsGrid.setGravity(Gravity.FILL_HORIZONTAL | Gravity.FILL_VERTICAL);
}
后来:
CHelper.layoutGrid.setOrientation(GridLayout.VERTICAL);
CHelper.layoutGrid.setLayoutParams(CHelper.lParamsGrid);
CHelper.setPaddingLeft(CHelper.layoutGrid, defaultMarginLeft);
final int rowCount = 5;
final int colCount = 2;
CHelper.layoutGrid.setColumnCount(colCount);
CHelper.layoutGrid.setRowCount(rowCount + 1);
添加例如一个TextView:
GridLayout.LayoutParams lp2 = new GridLayout.LayoutParams(GridLayout.spec(0,1), GridLayout.spec(0, 2));
lp2.setGravity(Gravity.FILL_HORIZONTAL | Gravity.FILL_VERTICAL);
textHeading.setGravity(Gravity.CENTER);
CHelper.layoutGrid.addView(textHeading, lp2);
最后:
setContentView(CHelper.layoutGrid, CHelper.lParamsGrid);
这是一个最小的例子。我在这里剥掉了不需要的东西。
任何人都可以告诉我,为什么这与api 23合作,但在api 24上“没有”?重量/宽度的东西?我该怎么办? 请注意,我已经尝试将GridLayout封装在LinearLayout中并将其用作ContentView。然后我将另一个Textfield添加到LinearLayout。会发生什么是绘制了另一个Textfield,但GridLayout仍然没有。所以它是一个非常具体的问题GridLayout< - > API> 23
编辑:哦,无论多么有趣,其他TextField都添加在底部,因此GridLayout元素似乎阻止了正确的空间而不仅仅是0px ...
感谢您的任何建议,我已经尝试了谷歌搜索并测试了5个小时。
最好的, wwhite