Saya deveoping aplikasi Android v2.2.
Saya memiliki sebuah fragmen .
Dalam onCreateView(...)
panggilan balik kelas fragmen saya, saya mengembang tata letak ke fragmen seperti di bawah ini:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.login, null);
return view;
}
File tata letak yang meningkat di atas adalah (login.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Username" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Username" />
</LinearLayout>
Saya ingin mengatur a paddingTop
ke <LinearLayout>
elemen di atas , dan saya ingin melakukannya dalam kode Java daripada melakukannya di xml.
Bagaimana mengatur paddingTop
ke <LinearLayout>
dalam kode kelas Java fragmen saya ??
findViewById
dan kemudian memanggilnyasetPadding
.view
sudah menjadi LinearLayout, tidak perlu menemukannya lagi dalam kasus ini. Mengingat ini adalah yang istimewa.Jawaban:
view.setPadding(0,padding,0,0);
Ini akan mengatur padding atas ke
padding
-pixels.Jika Anda ingin mengaturnya sebagai
dp
gantinya, Anda dapat melakukan konversi :sumber
float scale = getResources().getDisplayMetrics().density;
int size = (int) (sizeInPx*scale + 0.5f);
sizeInDp
sebenarnya jumlah piksel yang Anda dapatkan ketika mengkonversisizeInPx
dps.Untuk menjawab pertanyaan kedua Anda:
seperti yang disarankan SpK dan Jave, akan mengatur padding dalam piksel. Anda dapat mengaturnya dalam dp dengan menghitung nilai dp sebagai berikut:
Semoga itu bisa membantu!
sumber
Jika Anda menyimpan padding dalam file sumber daya, Anda bisa menelepon
Itu melakukan konversi untuk Anda.
sumber
Menggunakan Kotlin dan pustaka android-ktx, Anda bisa melakukannya
Lihat dokumen di sini
sumber
Anda dapat mengatur padding ke tampilan Anda dengan secara tata bahasa di seluruh kode di bawah ini -
Dan, juga ada berbagai jenis bantalan yang tersedia -
Lapisan
PaddingBottom
PaddingLeft
PaddingRight
PaddingTop
Tautan ini akan merujuk situs Pengembang Android. Semoga ini banyak membantu Anda.
sumber
Menggunakan
TypedValue
adalah cara yang jauh lebih bersih untuk mengonversi piksel dibandingkan dengan menghitung secara manual:Intinya,
TypedValue.applyDimension
ubah padding yang diinginkan menjadi piksel secara tepat tergantung pada properti tampilan perangkat saat ini.Untuk info lebih lanjut, lihat: TypedValue.applyDimension Docs .
sumber
gunakan metode di bawah ini untuk mengatur bantalan secara dinamis
Contoh:
sumber
Menulis Kode Mengikuti untuk mengatur padding, ini dapat membantu Anda.
Gunakan
LinearLayout.LayoutParams
atauRelativeLayout.LayoutParams
sesuai dengan tata letak induk dari tampilan anaksumber
sumber
Saat melapisi secara terprogram, konversikan ke nilai terkait kerapatan dengan mengubah piksel menjadi Dp.
sumber