297 votes

Ajouter rembourrage sur la vue par programmation

Je suis deveoping Android v2.2 app.

J'ai un fragment.

Dans l' onCreateView(...) de rappel de mon fragment de classe, je me gonfler une mise en page de 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 ci-dessus gonflé fichier de mise en page 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 de ce qui précède <LinearLayout> élément , et je veux le faire en Java code au lieu de le faire en xml.

Comment définir paddingTop de <LinearLayout> dans mon fragment de la classe Java code ??

568voto

Jave Points 14930

view.setPadding(0,padding,0,0);

Ceci permettra de définir le haut rembourrage padding-pixels.

Si vous souhaitez définir en dp au lieu de cela, vous pouvez faire une conversion:

float scale = getResources().getDisplayMetrics().density;
int dpAsPixels = (int) (sizeInDp*scale + 0.5f);

131voto

Chris Conway Points 1719

Pour répondre à votre deuxième question:

view.setPadding(0,padding,0,0);

comme SpK et Jave proposé permettra de fixer le rembourrage en pixels. Vous pouvez le mettre en dp par le calcul de la valeur de dp comme suit:

int paddingPixel = 25;
float density = context.getResources().getDisplayMetrics().density
int paddingDp = (int)(paddingPixel * density);
view.setPadding(0,paddingDp,0,0);

Espérons que ça aide!

110voto

Miklos Jakab Points 319

Si vous stockez le rembourrage dans les fichiers de ressources, vous pouvez simplement appeler

    int padding = getResources().getDimensionPixelOffset(R.dimen.padding);

Il fait la conversion pour vous.

20voto

Praveen Points 9516

Vous pouvez définir un rembourrage à votre vue par les pro grammaticalement tout au long de code ci-dessous -

view.setPadding(0,1,20,3);

Et aussi il y a différents type de remplissage disponibles

Rembourrage

PaddingBottom

PaddingLeft

PaddingRight

PaddingTop

Ces liens renvoient site des Développeurs Android. Espérons que cela vous aide beaucoup.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X