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 часов.

лучший, белый

0 ответов

Другие вопросы по тегам