Bagaimana cara menambahkan & menghapus tampilan dari tata letak?
Bagaimana cara menambahkan & menghapus tampilan dari tata letak?
Jawaban:
Saya telah melakukannya seperti ini:
((ViewManager)entry.getParent()).removeView(entry);
(ViewGroup):)
Gunakan ViewStub dan tentukan tata letak tampilan yang ingin Anda alihkan. Untuk melihat:
mViewStub.setVisibility(View.VISIBLE) or mViewStub.inflate();
Menghilang:
mViewStub.setVisibility(View.GONE);
Ini cara terbaik
LinearLayout lp = new LinearLayout(this);
lp.addView(new Button(this));
lp.addView(new ImageButton(this));
// Now remove them
lp.removeViewAt(0); // and so on
Jika Anda memiliki tata letak xml maka tidak perlu menambahkan panggilan dinamis.just saja
lp.removeViewAt(0);
Untuk menambahkan tampilan ke layout, Anda dapat menggunakan addViewmetode ViewGroupkelas. Sebagai contoh,
TextView view = new TextView(getActivity());
view.setText("Hello World");
ViewGroup Layout = (LinearLayout) getActivity().findViewById(R.id.my_layout);
layout.addView(view);
Ada juga sejumlah metode penghapusan. Periksa dokumentasi ViewGroup . Salah satu cara sederhana untuk menghapus tampilan dari tata letak bisa seperti,
layout.removeAllViews(); // then you will end up having a clean fresh layout
Untuk mengubah visibilitas:
predictbtn.setVisibility(View.INVISIBLE);
Untuk menghapus:
predictbtn.setVisibility(View.GONE);
Jawaban luar biasa dari Sameer dan Abel Terefe. Namun, saat Anda menghapus tampilan, dalam opsi saya, Anda ingin menghapus tampilan dengan id tertentu. Inilah cara Anda melakukannya.
1, berikan tampilan id saat Anda membuatnya:
_textView.setId(index);
2, hapus tampilan dengan id:
removeView(findViewById(index));
Anda bisa menggunakan addView atau removeView
Jawa:
// Root Layout
LinearLayout linearLayout = new LinearLayout(context);
linearLayout.setGravity(Gravity.CENTER);
linearLayout.setOrientation(LinearLayout.VERTICAL);
// TextView
TextView textView = new TextView(context);
textView.setText("Sample");
// Add TextView in LinearLayout
linearLayout.addView(textView);
// Remove TextView from LinearLayout
linearLayout.removeView(textView);
kotlin:
// Root Layout
val linearLayout = LinearLayout(context)
linearLayout.gravity = Gravity.CENTER
linearLayout.orientation = LinearLayout.VERTICAL
// TextView
val textView = TextView(context)
textView.text = "Sample"
// Add TextView in LinearLayout
linearLayout.addView(textView)
// Remove TextView from LinearLayout
linearLayout.removeView(textView)
hai jika Anda baru di android gunakan cara ini Terapkan tampilan Anda untuk membuatnya hilang Hilang adalah salah satu cara, jika tidak, dapatkan tampilan induk, dan hapus anak dari sana ..... lain dapatkan tata letak induk dan gunakan ini metode menghapus semua anak parentView.remove (anak)
Saya akan menyarankan menggunakan pendekatan GONE ...
Saya menghapus tampilan menggunakan Metode mulai dan hitung, saya telah menambahkan 3 tampilan dalam Tata Letak linier.
view.removeViews (0, 3);
Tambahkan ekstensi ini:
myView.removeSelf()
fun View?.removeSelf() {
this ?: return
val parent = parent as? ViewGroup ?: return
parent.removeView(this)
}
Berikut beberapa opsinya:
// Built-in
myViewGroup.addView(myView)
// Null-safe extension
fun ViewGroup?.addView(view: View?) {
this ?: return
view ?: return
addView(view)
}
// Reverse addition
myView.addTo(myViewGroup)
fun View?.addTo(parent: ViewGroup?) {
this ?: return
parent ?: return
parent.addView(this)
}