Android GridLayout невидим, начиная с API 24
Если я использую target-sdk="23", то все в порядке. все выше, поэтому, начиная с "24", у меня проблема в том, что мой GridLayout (не GridView) вообще не отображается (приложение не падает или также показывает ошибку). Это просто остается невидимым.
Внутри Челпер-класса:
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. Затем я добавил еще одно текстовое поле в LinearLayout. Что происходит, так это то, что другое Textfield рисуется, но все равно ничего из GridLayout. Так что это очень специфическая проблема GridLayout <-> api> 23
edit: О, как бы это ни было интересно, другой TextField добавлен внизу, так что элемент GridLayout, кажется, блокирует правильное пространство и не просто 0px...
спасибо за любой совет, я пробовал гуглить и тестировать в течение 5 часов.
лучший, белый