В Activity не отображается TableLayout

308
03 октября 2017, 03:56

Мне необходимо добавить TableLayout в LinearLayout, но при тестировании TableLayout добавляется (ясно, так как ScrolView пролистывается), но не отображается (в ячейках нет картинок, задний фон белый). Как исправить это (возможности написать его в xml нет, так как он буде вставляться в будущем из другого класса и какое-то количество раз >= 1)?

Вот код:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_theory);
    categores = QuestionList.getAllCategores();
    LinLay = (LinearLayout) findViewById(R.id.LinLayoutThA);
    createButtons();
    // FIXME: 09.09.2017 
    //Theory testTheory = new Theory("what", new Phrase(Alphabet.getSymbol("?")));
    show();
}

В методе show() происходит добавление Сам метод show:

 private void show() {
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
            LinearLayout.LayoutParams.WRAP_CONTENT);
    LinearLayout mainComp = new LinearLayout(this);
    mainComp.setOrientation(LinearLayout.VERTICAL);
    TableLayout tableLayout = new TableLayout(this);
    tableLayout.setLayoutParams(new TableLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT));
    TableRow[] rows = new TableRow[3];
    ImageView[][] imageViews = new ImageView[3][8];
    for (int i = 0; i < rows.length; i++) {
        rows[i] = new TableRow(this);
        rows[i].setLayoutParams(new TableRow.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.WRAP_CONTENT));
        for (int j = 0; j < 8; j++) {
            imageViews[i][j] = new ImageView(this);
            imageViews[i][j].setBackgroundColor(0xFF0000);
            imageViews[i][j].setImageResource(Alphabet.getSymbol("?").getImageID());
            rows[i].addView(imageViews[i][j], R.dimen.forImageView, R.dimen.forImageView);
        }
    }
    for (TableRow row : rows) {
        tableLayout.addView(row, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    }
    mainComp.setBackgroundColor(151515);
    mainComp.addView(tableLayout, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    //todo create image
    LinLay.addView(mainComp, params);
}

P.S. Вообще метод show должен находится в другом классе и принимать Context и LinearLayout, но для простоты я перенес его в Activity

READ ALSO
GMapsFX: Exception in Application start method

GMapsFX: Exception in Application start method

Я пытаюсь реализовать этот пример:

605
Не могу задать TextView

Не могу задать TextView

В классе привязанному к layout есть функция

370
Не запускается приложение на heroku

Не запускается приложение на heroku

Создал telegram bot'a на javaТеперь пытаюсь задеплоить его в heroku

467
Jersey Spring Hibernate

Jersey Spring Hibernate

У меня такая трабла - нужно написать RESTful сервисВ нём мне нужно работать с базой, решил для этого юзать Hibernate

302