Bagaimana saya bisa mendapatkan nilai margin dari sebuah View dari sebuah Aktivitas? Tampilan dapat berupa jenis apa pun.
Setelah sedikit mencari, saya menemukan cara untuk mendapatkan padding tampilan, tetapi tidak dapat menemukan apa pun di Margin. Adakah yang bisa membantu?
Saya mencoba sesuatu seperti ini,
ViewGroup.LayoutParams vlp = view.getLayoutParams();
int marginBottom = ((LinearLayout.LayoutParams) vlp).bottomMargin;
Ini berfungsi, tetapi dalam kode di atas saya mengasumsikan tampilan menjadi a LinearLayout
. Tapi saya perlu mendapatkan margin
atribut bahkan ketika saya tidak tahu tipe tampilan.
android
android-layout
android-view
Arnab Chakraborty
sumber
sumber
LayoutParams
. Ada kelas sepertiFrameLayout.LayoutParams
,RelativeLayout.LayoutParams
, tapi tidak sepertiLayoutParams
dalam dirinya sendiri. Dan karena saya tidak tahu jenis tampilan, saya tidak dapat menggunakan kelas sebelumnya.ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
itu?Mencoba
Ini mengembalikan margin yang benar untuk setidaknya pandangan saya.
http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html
sumber
sekarang gunakan kode yang diedit ini. ini akan membantumu
sumber
LinearLayout
denganhorizontal
orientasi. Jika ini adalah tampilan kedua dalam tata letak,view.getLeft()
metode ini akan memberi saya koordinat kiri tetapi margin kiri tampilan dari tampilan yang berdekatan.LinearLayout
?Seperti yang disarankan orang lain, layout_margin # adalah spasi antara tepi # induk dan tampilan Anda.
Mendapatkan / mengatur margin berhasil untuk saya dengan:
Tentu saja, Tampilan saya memang ViewGroup dan induknya adalah ViewGroup juga. Dalam kebanyakan kasus, Anda harus mentransmisikan parameter layout Anda ke kelas View LayoutParams orang tua (dalam hal ini adalah ViewGroup dan RelativeLayout)
sumber