Agregar relleno en la vista mediante programación
Estoy desarrollando la aplicación Android v2.2.
Tengo un Fragment
. En la onCreateView(...)
devolución de llamada de mi clase de fragmento, infla un diseño al fragmento como se muestra a continuación:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.login, null);
return view;
}
El archivo de diseño inflado anterior es (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>
Me gustaría establecer a paddingTop
en el elemento anterior <LinearLayout>
y quiero hacerlo en el código Java en lugar de hacerlo en xml.
¿ Cómo configurar paddingTop
en <LinearLayout>
mi fragmento el código de clase Java?
view.setPadding(0,padding,0,0);
Esto establecerá el relleno superior en padding
-píxeles.
Si desea configurarlo dp
, puede realizar una conversión :
float scale = getResources().getDisplayMetrics().density;
int dpAsPixels = (int) (sizeInDp*scale + 0.5f);
Para responder a su segunda pregunta:
view.setPadding(0,padding,0,0);
como sugirieron SpK y Jave, establecerá el relleno en píxeles. Puede configurarlo en dp calculando el valor de dp de la siguiente manera:
int paddingDp = 25;
float density = context.getResources().getDisplayMetrics().density
int paddingPixel = (int)(paddingDp * density);
view.setPadding(0,paddingPixel,0,0);
Si almacena el relleno en archivos de recursos, simplemente puede llamar
int padding = getResources().getDimensionPixelOffset(R.dimen.padding);
Hace la conversión por ti.
Usando Kotlin y la biblioteca android-ktx, simplemente puedes hacer
view.updatePadding(top = 42)
Ver documentos aquí