Tablelayout и LinearLayout - видимые и невидимые - PullRequest
0 голосов
/ 22 июля 2011

Я хочу, чтобы макет таблицы находился внутри линейного макета, чтобы имелся текст до и после макета таблицы. Проблема в том, что я хочу иметь возможность переключаться между двумя таблицами (Таблица1 и Таблица2), но сохранить текст до и после того же. Я подумал, что это можно было бы сделать, используя видимые и невидимые функции таблицы, и определить все это в одном макете, но, похоже, это не так. Что я получаю, так это то, что когда я делаю Table2 видимым, а Table1 невидимым, Table2 смещается вниз, потому что я определил его после Table 1 в макете.

То, что я хочу, это: - SomeTextHere Таблица 1 SomeTextHere тоже

или

SomeTextHere Таблица 2 SomeTextHere тоже

Что я получаю: -

SomeTextHere Таблица 1 SomeTextHere тоже

SomeTextHere

Table2 SomeTextHere тоже

Я пытался: -

LinearLayout TableLayout1 сделать видимым TableLayout2 сделать невидимым LinearLayout

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2012

Ваша проблема в том, что вы используете View.INVISIBLE, чтобы скрыть разделы. Вам нужно использовать View.GONE, если вы хотите, чтобы вид не занимал место в макете.

Кроме того, если изменяется только таблица, вам не нужно дублировать, просто поместите таблицы одну за другой и установите видимость той, которая не должна быть видимой по умолчанию, с установкой исчезнувшей. Тогда вы можете просто переключать их в коде.

0 голосов
/ 22 июля 2011

Если я правильно понял ваш вопрос, я думаю, что вы можете добавить еще два LinearLayout в ваш основной LinearLayout. Затем поместите группу (Text, Table, Text) в каждый LinearLayout, и тогда вы сможете работать с каждым Linear Layout вместоработа с текстом, таблицей, текстом

, чтобы иерархия макета выглядела как

< LinearLayout>

        < LinearLayout>

             < Text>
             < TableLayout>
             < Text>

    < /LinearLayout>

    < LinearLayout>

            < Text>
            < TableLayout>
            < Text
     < /LinearLayout>

    < /LinearLayout>
...