Bonjour à tous Je viens d'implémenter un ListView dans LinearLayout, mais je dois définir la hauteur de LinearLayout (elle doit représenter 50% de la hauteur de l'écran).
<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>
Est-ce possible?
J'ai fait quelque chose de similaire pour un bouton et un EditText, mais cela ne semble pas fonctionner avec les Layouts.
Ceci est mon code:
//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);
Je vous remercie! :)
Définissez son layout_height="0dp"
*, ajoutez une View
vierge en dessous (ou une vierge ImageView
ou juste une FrameLayout
) avec un layout_height
également égal à 0dp
, puis définissez un layout_weight="1"
sur __ pour les deux vues.
Cela étendra chaque vue autant qu’elle remplit l’écran. Puisque les deux ont le même poids, chacun occupera 50% de l'écran.
* Voir le commentaire d'adamp pour savoir pourquoi cela fonctionne et d'autres informations très utiles.
C'est facile à faire en XML. Définissez votre conteneur supérieur sur LinearLayout et définissez l'attribut d'orientation comme vous le souhaitez. Ensuite, à l'intérieur de cet emplacement, deux couches linéaires dont les deux ont "remplir le parent" en largeur et en hauteur. Enfin, définissez l’attribut weigth de ces deux représentations linéaires sur 1.
Ceci est mon Android: layout_height = 50% Activité:
<?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>
style:
<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>
le meilleur moyen est d'utiliser
layout_height = "0dp" layout_weight = "0.5"
par exemple
<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 ont 50% de la hauteur de l'écran
c'est si facile si vous voulez diviser votre écran en deux parties verticalement (top30% + bottom70%)
<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>
Pour vous assurer que la hauteur d'une vue correspond à 50% de l'écran, nous pouvons créer deux sous-linéaires LinearLayouts dans un LinearLayout. Chaque enfant de LinearLayout devrait avoir " Android: layout_weight " de 0.5 pour couvrir la moitié de l'écran.
" Android: orientation " défini sur vertical
.
.
voici le code pour votre référence .... ce code contient deux boutons de hauteur la moitié de l'écran
<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>
Vous devriez faire quelque chose comme ça:
<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>
Utilisez également dp à la place de px ou lisez-le à ce sujet ici .
Ce genre de travail a fonctionné pour moi… Bien que FAB ne flotte pas de manière indépendante, mais maintenant il n'est pas poussé à terre.
Observez les poids donnés à l'intérieur du 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>
J'espère que cela t'aides :)