Я новичок в android, и я не могу решить свою простую проблему. У меня есть родительский Tablelayout и внутри него. У меня есть два табличных профайла с идентификаторами tbl1 и tbl2 соответственно в моем xml-файле. В tbl1 layout У меня есть три textviews и три элемента управления edittext, аналогично, у меня есть некоторые представления в макете tbl2. Теперь я хочу, чтобы мой макет tbl1 был виден, когда моя активность начинается, но при нажатии моей кнопки2, которая находится в макете tbl1, мой tablelayout tbl1 становится невидимым, а моя таблица tbl2 становится видимым. Фактически, я знаю, что могу добиться этого в asp.net с помощью панелей, но в android я не могу добиться того же. Помогитенастройка макетов visiblity на событие нажатия кнопки
1
A
ответ
0
Вы хотите посмотреть на метод setVisibility()
, В прослушивателях щелчков для кнопки 2 поставьте следующее:
Button.setVisibility(View.INVISIBLE)
TextView.setVisibility(View.INVISIBLE)
etc...
Это сделает вид невидимым, но они по-прежнему занимают место. Если вы не хотите, чтобы занять место, вы должны использовать
setVisibility(Veiw.GONE);
Наконец, чтобы сделать вам кнопки и TextView и edittexts во второй таблице, появляются, что вам нужно сделать следующее;
setVisibility(View.VISIBLE);
0
Java Code:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.visibility_1);
// Find the view whose visibility will change
mVictim = findViewById(R.id.victim);
// Find our buttons
Button visibleButton = (Button) findViewById(R.id.vis);
Button invisibleButton = (Button) findViewById(R.id.invis);
Button goneButton = (Button) findViewById(R.id.gone);
// Wire each button to a click listener
visibleButton.setOnClickListener(mVisibleListener);
invisibleButton.setOnClickListener(mInvisibleListener);
goneButton.setOnClickListener(mGoneListener);
}
OnClickListener mVisibleListener = new OnClickListener() {
public void onClick(View v) {
mVictim.setVisibility(View.VISIBLE);
}
};
OnClickListener mInvisibleListener = new OnClickListener() {
public void onClick(View v) {
mVictim.setVisibility(View.INVISIBLE);
}
};
OnClickListener mGoneListener = new OnClickListener() {
public void onClick(View v) {
mVictim.setVisibility(View.GONE);
}
};
}
XML Code:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:background="@drawable/box"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:background="@drawable/red"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/visibility_1_view_1"/>
<TextView android:id="@+id/victim"
android:background="@drawable/green"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/visibility_1_view_2"/>
<TextView
android:background="@drawable/blue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/visibility_1_view_3"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button android:id="@+id/vis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/visibility_1_vis"/>
<Button android:id="@+id/invis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/visibility_1_invis"/>
<Button android:id="@+id/gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/visibility_1_gone"/>
</LinearLayout>
</LinearLayout>
+0
, добавьте пояснения к своему ответу – HaveNoDisplayName
вы хотите сказать, что в первую очередь мне нужно сделать все элементы управления в Layout1 невидимым, а затем сделать их видимыми на нажатие кнопки – rupinder18
@ rupinder18 Да, вы могли бы сделать это в XML тоже, если вам хотел, с 'android: visibility =" gone "' – jcw
, но тогда зачем использовать различные элементы управления в разных макетах ... в основном то, что я хочу, - это щелчок кнопки, определенная группа элементов управления становится видимой и нажимает другую кнопку эта группа элементов управления становится невидимой, и другая группа элементов управления становится видимой ... как в asp.net мы достигаем этого с помощью панелей, например, у меня есть панель 1, и у меня есть некоторые элементы управления, а затем я устанавливаю видимость панели1 true o n щелчок кнопки, преимущество этого, а не установка видимости каждого элемента управления, мы устанавливаем только видимость панели – rupinder18