Je développe l'application Android v2.2.
J'ai un fragment .
Dans le onCreateView(...)
rappel de ma classe de fragment, je gonfle une disposition au fragment comme ci-dessous:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.login, null);
return view;
}
Le fichier de disposition gonflé ci-dessus est (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>
Je voudrais mettre un paddingTop
à l' <LinearLayout>
élément ci-dessus , et je veux le faire dans le code Java au lieu de le faire en xml.
Comment mettre paddingTop
à <LinearLayout>
mon fragment Java code de classe ??
findViewById
, puis l'appelersetPadding
.view
est déjà le LinearLayout, pas besoin de le retrouver dans ce cas. Étant donné que c'est un cas particulier.Réponses:
view.setPadding(0,padding,0,0);
Cela définira le remplissage supérieur à
padding
-pixels.Si vous souhaitez le configurer à la
dp
place, vous pouvez effectuer une conversion :la source
float scale = getResources().getDisplayMetrics().density;
int size = (int) (sizeInPx*scale + 0.5f);
sizeInDp
c'est en fait le nombre de pixels que vous obtenez lors de la conversion desizeInPx
dps.Pour répondre à votre deuxième question:
comme SpK et Jave l'ont suggéré, définira le remplissage en pixels. Vous pouvez le définir en dp en calculant la valeur dp comme suit:
J'espère que cela pourra aider!
la source
Si vous stockez le remplissage dans des fichiers de ressources, vous pouvez simplement appeler
Il fait la conversion pour vous.
la source
En utilisant Kotlin et la bibliothèque android-ktx, vous pouvez simplement faire
Voir les documents ici
la source
Vous pouvez définir le remplissage de votre vue en programmant tout au long du code ci-dessous -
Et, il existe également différents types de rembourrage disponibles -
Rembourrage
RembourrageBas
PaddingLeft
PaddingRight
PaddingTop
Ces liens renverront au site des développeurs Android. J'espère que cela vous aide beaucoup.
la source
L'utilisation
TypedValue
est un moyen beaucoup plus propre de convertir en pixels que de calculer manuellement:Essentiellement,
TypedValue.applyDimension
convertit le remplissage souhaité en pixels en fonction des propriétés d'affichage de l'appareil actuel.Pour plus d'informations, voir: TypedValue.applyDimension Docs .
la source
utiliser la méthode ci-dessous pour définir dynamiquement le remplissage
Exemple :
la source
Écrivez le code suivant pour définir le remplissage, cela peut vous aider.
Utiliser
LinearLayout.LayoutParams
ouRelativeLayout.LayoutParams
selon la disposition parent de la vue enfantla source
la source
Lors du remplissage par programmation, convertissez-le en valeurs liées à la densité en convertissant le pixel en Dp.
la source