Проблема с RelativeLayout, когда видимость Представления является Представлением. УВЕДЕННЫЙ

У меня есть a RelativeLayout таким образом:

<RelativeLayout>
<TextView1/>
<TextView2/> // <-- View.VISIBLE OR View.GONE
<TextView3/>
<TextView4/>
</RelativeLayout>

Каждый TextView привязывается ниже предыдущего TextView с android:layout_below.

Проблема состоит в том, что TextView2 может или не может быть там (также View.VISIBLE или View.GONE); если это View.VISIBLE, затем все в порядке, но если это View.GONE, затем TextView3 заканчивает тем, что был представлен сверху TextView1.

Я попробовал различные способы зафиксировать это, но каждый раз ловится RelativeLayout'Вы не можете сослаться на идентификатор, прежде чем он будет определен' правило.

Я надеюсь, что пропускаю что-то очевидное здесь.

74
задан Onik 17 November 2018 в 01:45
поделиться

2 ответа

Вы можете разместить текстовое представление 2 и 3 в LinearLayout и сохранить линейный макет ниже текстового представления 1.

40
ответ дан 24 November 2019 в 11:47
поделиться

почему бы не обновлять атрибут below TextView3, когда вы обновляете видимость TextView2? (Я предполагаю, что вы делаете это в коде)

что-то вроде

TextView tv = (TextView) findViewById(R.id.textview3);
RelativeLayout.LayoutParams lp =
    (RelativeLayout.LayoutParams) tv.getLayoutParams();
lp.addRule(RelativeLayout.BELOW, R.id.textview1);
((TextView) view).setLayoutParams(lp);
10
ответ дан 24 November 2019 в 11:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: