porcentaje linearlayout layout_width layout_height guideline constraint android layout size relative

linearlayout - android: layout_height 50% del tamaño de la pantalla



guideline android 50% (9)

Hola a todos Acabo de implementar un ListView dentro de LinearLayout, pero necesito definir el alto de LinearLayout (tiene que ser el 50% de la altura de la pantalla).

<LinearLayout android:id="@+id/widget34" android:layout_width="300px" android:layout_height="235px" android:orientation="vertical" android:layout_below="@+id/tv_scanning_for" android:layout_centerHorizontal="true"> <ListView android:id="@+id/lv_events" android:textSize="18sp" android:cacheColorHint="#00000000" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/tv_scanning_for" android:layout_centerHorizontal="true"> </ListView> </LinearLayout>

¿Es eso posible?

Hice algo similar para un botón y un EditText, pero parece que no funciona en Layouts.

Este es mi Código:

//capture the size of the devices screen Display display = getWindowManager().getDefaultDisplay(); double width = display.getWidth(); //my EditText will be smaller than full screen (80%) double doubleSize = (width/5)*4; int editTextSize = (int) doubleSize; //define the EditText userName = (EditText) this.findViewById(R.id.userName); password = (EditText) this.findViewById(R.id.password); //set the size userName.setWidth(editTextSize); password.setWidth(editTextSize);

¡Gracias! :)


Deberías hacer algo como eso:

<LinearLayout android:id="@+id/widget34" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_below="@+id/tv_scanning_for" android:layout_centerHorizontal="true"> <ListView android:id="@+id/lv_events" android:textSize="18sp" android:cacheColorHint="#00000000" android:layout_height="1" android:layout_width="fill_parent" android:layout_weight="0dp" android:layout_below="@+id/tv_scanning_for" android:layout_centerHorizontal="true" /> </LinearLayout>

También use dp en lugar de px o lea sobre esto here .


Es muy fácil si quieres dividir tu pantalla en dos partes verticalmente (arriba 30% + abajo70%)

<LinearLayout android:id="@+id/LinearLayoutTop" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="2"> </LinearLayout> <LinearLayout android:id="@+id/LinearLayoutBottom" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> </LinearLayout>


Esta es mi android: layout_height = 50% de actividad:

<?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" > <LinearLayout android:id="@+id/alipay_login" style="@style/loginType" android:background="#27b" > </LinearLayout> <LinearLayout android:id="@+id/taobao_login" style="@style/loginType" android:background="#ed6d00" > </LinearLayout> </LinearLayout>

estilo:

<style name="loginType"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">match_parent</item> <item name="android:layout_weight">0.5</item> <item name="android:orientation">vertical</item> </style>


Establezca su layout_height="0dp" *, agregue una View blanco debajo de él (o ImageView blanco o solo un FrameLayout ) con un layout_height también igual a 0dp , y configure ambas vistas para que tengan un layout_weight="1"

Esto estirará cada Vista por igual a medida que llena la pantalla. Como ambos tienen el mismo peso, cada uno tomará el 50% de la pantalla.

* Vea el comentario de adamp sobre por qué funciona y otras cositas realmente útiles.


Este tipo de trabajo funcionó para mí. Aunque FAB no flota de forma independiente, pero ahora no se empuja hacia abajo.

Observe los pesos dados dentro del LinearLayout

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:id="@+id/andsanddkasd"> <android.support.v7.widget.RecyclerView android:id="@+id/sharedResourcesRecyclerView" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="4" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_gravity="bottom|right" android:src="@android:drawable/ic_input_add" android:layout_weight="1"/> </LinearLayout>

Espero que esto ayude :)


Esto es fácil de hacer en xml. Configure su contenedor superior para que sea LinearLayout y configure el atributo de orientación como lo desee. Luego, dentro de ese lugar dos lineales que tienen "fill parent" en ancho y alto. Finalmente, establezca el atributo de ponderación de esos dos lineales en 1.


Para asegurarnos de que el alto de una vista es el 50% de la pantalla, podemos crear dos LinearLayouts sub en LinearLayout. Cada uno de los niños LinearLayout debe tener " android: layout_weight " de 0.5 para cubrir la mitad de la pantalla

el padre LinearLAyout debe tener " android: orientation " en vertical

.

.

aquí está el código para su referencia ... este código contiene dos botones de altura, la mitad de la pantalla

<LinearLayout android:orientation="vertical" android:layout_height="match_parent"> <LinearLayout android:layout_weight="0.5" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:padding="10dp" android:layout_weight="0.5" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="button1" android:id="@+id/button1" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentBottom="true" /> <Button android:padding="10dp" android:layout_weight="0.5" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="button2" android:id="@+id/button2" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" /> </LinearLayout> <LinearLayout android:layout_weight="0.5" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> </LinearLayout> </LinearLayout>


Para lograr esta hazaña, defina un diseño lineal externo con un weightSum={amount of weight to distribute} .

define la suma de peso máxima. Si no se especifica, la suma se calcula sumando el layout_weight de todos los elementos secundarios. Esto se puede usar, por ejemplo, para dar a un único hijo el 50% del espacio total disponible, dándole un layout_weight de 0.5 y configurando weightSum en 1.0. Otro ejemplo sería weightSum = 2, y si los dos hijos configuran layout_weight=1 entonces cada uno obtendría el 50% del espacio disponible.

WeightSum depende de la cantidad de elementos secundarios en el diseño principal.


la mejor manera es usar

layout_height = "0dp" layout_weight = "0.5"

por ejemplo

<WebView android:id="@+id/wvHelp" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="0.5" /> <TextView android:id="@+id/txtTEMP" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="0.5" android:text="TextView" />

WebView, TextView tienen el 50% de la altura de la pantalla