Ich entwickle Android v2.2 App.
Ich habe ein Fragment .
Beim onCreateView(...)
Rückruf meiner Fragmentklasse füge ich dem Fragment ein Layout wie folgt hinzu:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.login, null);
return view;
}
Die oben aufgeblasene Layoutdatei lautet (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>
Ich möchte ein paddingTop
auf das obige <LinearLayout>
Element setzen, und ich möchte es im Java- Code tun, anstatt es in XML zu tun.
Wie stellt man paddingTop
auf <LinearLayout>
in meinem Fragment Java - Klasse Code ??
findViewById
und dann aufrufensetPadding
können.view
ist bereits das LinearLayout, in diesem Fall muss es nicht erneut gefunden werden. Angesichts dessen ist dies jedoch etwas Besonderes.Antworten:
view.setPadding(0,padding,0,0);
Dadurch wird die obere Polsterung auf
padding
-pixel gesetzt.Wenn Sie es
dp
stattdessen einstellen möchten , können Sie eine Konvertierung durchführen :quelle
float scale = getResources().getDisplayMetrics().density;
int size = (int) (sizeInPx*scale + 0.5f);
sizeInDp
eigentlich die Anzahl der Pixel, die Sie beim Konvertieren vonsizeInPx
dps erhalten.So beantworten Sie Ihre zweite Frage:
Wie von SpK und Jave vorgeschlagen, wird die Auffüllung in Pixel festgelegt. Sie können es in dp einstellen, indem Sie den dp-Wert wie folgt berechnen:
Hoffentlich hilft das!
quelle
Wenn Sie das Auffüllen in Ressourcendateien speichern, können Sie einfach aufrufen
Es macht die Konvertierung für Sie.
quelle
Mit Kotlin und der android-ktx-Bibliothek können Sie dies einfach tun
Siehe Dokumente hier
quelle
Sie können das Auffüllen Ihrer Ansicht festlegen, indem Sie den folgenden Code programmgesteuert verwenden.
Und es gibt auch verschiedene Arten von Polsterung -
Polsterung
PaddingBottom
PaddingLeft
PaddingRight
PaddingTop
Diese Links verweisen auf die Website der Android-Entwickler. Hoffe das hilft dir sehr.
quelle
Die Verwendung
TypedValue
ist eine viel sauberere Methode zum Konvertieren in Pixel im Vergleich zur manuellen Berechnung:TypedValue.applyDimension
Konvertiert im Wesentlichen die gewünschte Auffüllung entsprechend den Anzeigeeigenschaften des aktuellen Geräts in Pixel.Weitere Informationen finden Sie unter: TypedValue.applyDimension Docs .
quelle
Verwenden Sie die folgende Methode, um das Auffüllen dynamisch einzustellen
Beispiel:
quelle
Schreiben Sie den folgenden Code, um die Polsterung festzulegen. Dies kann Ihnen helfen.
Verwenden Sie
LinearLayout.LayoutParams
oderRelativeLayout.LayoutParams
entsprechend dem übergeordneten Layout der untergeordneten Ansichtquelle
quelle
Konvertieren Sie beim programmgesteuerten Auffüllen in dichtebezogene Werte, indem Sie Pixel in Dp konvertieren.
quelle