J'essaie d'ajouter une autre barre d'action ou un autre menu au bas de la présentation de mon activité et de conserver la barre d'action supérieure.
Quelque chose comme ça :
Voici ma mise en page:
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical"
tools:context="com.example.yasser.version6.PublierActivity">
<include
Android:id="@+id/toolbar"
layout="@layout/toolbar" />
<RelativeLayout
Android:layout_width="fill_parent"
Android:layout_height="match_parent"
>
<LinearLayout
Android:layout_width="fill_parent"
Android:id="@+id/user"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:weightSum="1">
<ImageView
Android:layout_width="40dp"
Android:layout_height="40dp"
Android:layout_gravity="center"
Android:layout_margin="4dp"
Android:id="@+id/profil_image"
Android:layout_alignParentTop="true"
Android:layout_alignParentRight="true"
Android:layout_alignParentEnd="true"
Android:layout_marginRight="218dp"
Android:layout_marginEnd="218dp" />
<EditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:inputType="textMultiLine|textCapSentences"
Android:ems="10"
Android:background="#00000000"
Android:layout_margin="4dp"
Android:hint="Écriver quelque chose..."
Android:id="@+id/publication_text"
Android:maxLength="150"
Android:textSize="15dp"
Android:maxLines="3"
Android:layout_alignParentTop="true"
Android:layout_alignParentLeft="true"
Android:layout_alignParentStart="true">
<requestFocus />
</EditText>
</LinearLayout>
<ImageView
Android:layout_width="fill_parent"
Android:layout_height="@dimen/image_size"
Android:id="@+id/publication_image"
Android:layout_weight="1"
Android:padding="0dp"
Android:background="@drawable/default_image"
Android:layout_marginTop="5dp"
Android:scaleType="fitXY"
Android:layout_below="@+id/user" />
</RelativeLayout>
J'ai essayé d'ajouter un RelativeLayout personnalisé qui ressemble presque à une barre d'action, mais la barre d'outils affiche tout.
J'ai déjà créé une application simple qui devrait vous montrer comment commencer
Voici mon fichier de mise en page activity_main.xml
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:padding="0dp"
tools:context="com.example.piotr.myapplication.MainActivity">
<LinearLayout
Android:id="@+id/show_pdf"
Android:layout_width="match_parent"
Android:layout_height="40dp"
Android:layout_alignParentBottom="true"
Android:layout_centerHorizontal="true"
Android:background="@color/primary_material_light"
Android:orientation="horizontal">
<ImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:src="@drawable/abc_ic_menu_cut_mtrl_alpha"/>
<ImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:src="@drawable/abc_ic_menu_copy_mtrl_am_alpha"/>
<ImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:src="@drawable/abc_ic_menu_selectall_mtrl_alpha"/>
<ImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:src="@drawable/abc_ic_menu_paste_mtrl_am_alpha"/>
<ImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:src="@drawable/abc_ic_menu_share_mtrl_alpha"/>
<ImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:src="@drawable/abc_ic_menu_selectall_mtrl_alpha"/>
<ImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:src="@drawable/abc_ic_menu_moreoverflow_mtrl_alpha"/>
</LinearLayout>
<EditText
Android:id="@+id/editText"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentTop="true"
Android:layout_centerHorizontal="true"
Android:layout_marginTop="75dp"
Android:ems="10"
Android:inputType="textPersonName"
Android:text="Name"/>
</RelativeLayout>
Comme vous pouvez le constater, mon parent ViewGroup
est RelativeLayout
, ce qui me permet simplement de créer une vue au bas de l'écran.
Notez que je mets la mise en page à zéro (je pense: mettre la marge à 0 ici n'est pas nécessaire, le même effet). Si vous le changez, la barre d’outils n’utilisera pas toute la largeur et ne collera pas avec le bas de l’écran.
Ensuite, j'ai ajouté une disposition linéaire avec une hauteur codée en dur, à savoir:
Android:layout_height="40dp"
Je le voulais, ma barre d’outils inférieure prendrait toute la largeur disponible, donc je l’ai définie comme match_parent
.
Ensuite, j'ai ajouté des vues ImageButton
avec des images de la bibliothèque Android.
Là vous avez deux possibilités:
si vous voulez vraiment avoir une barre d'outils comme dans l'exemple ci-dessus, supprimez-la dans chaque ImageButton
, affichez cette ligne:
Android:layout_weight="1"
Une fois les poids et les boutons supprimés, vous obtenez une vue assez similaire à celle attendue:
weight
comme dans cet exemple de mine.Passons maintenant à mon AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.example.piotr.myapplication"
xmlns:Android="http://schemas.Android.com/apk/res/Android">
<application
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:supportsRtl="true"
Android:theme="@style/AppTheme">
<activity
Android:name=".MainActivity"
Android:windowSoftInputMode="stateVisible|adjustResize">
<intent-filter>
<action Android:name="Android.intent.action.MAIN"/>
<category Android:name="Android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
Dans ce fichier, j’avais ajouté car vous ne pouvez voir qu’une seule ligne supplémentaire:
Android:windowSoftInputMode="stateVisible|adjustResize">
pour vous assurer que le clavier de l'appareil ne cachera pas ma barre d'outils inférieure personnalisée.
Si vous avez des questions, n'hésitez pas à demander. Je leur répondrais le plus rapidement possible.
J'espère que ça aide
Autant que je sache, il n'y a pas d'option pour déplacer la ActionBar
entièrement vers le bas. Mais il est toujours possible d'afficher quelques éléments en bas. pour cela vous devez faire ceci:
Ajoutez simplement Android:uiOptions="splitActionBarWhenNarrow"
à votre balise activity
dans le AndroidManifest.xml
comme ceci ...
<activity
Android:name=".MainActivity"
Android:uiOptions="splitActionBarWhenNarrow">
Vous pouvez en lire plus ici et ici
J'espère que ça aide. :)
J'ai créé une barre inférieure personnalisée avec la hauteur exacte de? Attr/actionBarSize et `layout_alignParentBottom =" true "pour la mettre en bas.
<LinearLayout
Android:id="@+id/bottombar"
Android:layout_width="fill_parent"
Android:layout_height="?attr/actionBarSize"
Android:layout_alignParentBottom="true"
Android:background="#FFFFFF"
Android:weightSum="30"
Android:orientation="horizontal">
<ImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginLeft="10dp"
Android:layout_gravity="center"
Android:background="@Android:color/transparent"
Android:src="@drawable/iconcamera"/>
<ImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginLeft="10dp"
Android:layout_gravity="center"
Android:background="@Android:color/transparent"
Android:src="@drawable/shape"/>
</LinearLayout>`
Maintenant, allez à Manifest.xml et dans votre balise d'activité
Android:windowSoftInputMode="adjustResize"
Cela redimensionnera la disposition lors de l’ouverture du clavier.
C'est une barre d'action divisée. Il est disponible pour les appareils dotés d’une largeur d’écran de 400dp. <Pour activer la barre d’action divisée, ajoutez simplement uiOptions = "splitActionBarWhenNarrow" à votre élément ou à votre élément manifest.
Edit: La deuxième image n’est en effet pas une barre d’action divisée. Ce ne sont que des boutons avec l'attribut buttonBarButtonStyle. Regardez dans ceci ici.
Vous pouvez simplement ajouter une barre d’outils et la définir en bas pour créer votre propre disposition personnalisée.
<Android.support.v7.widget.Toolbar Android:id="@+id/toolbar"
Android:layout_width="match_parent" Android:layout_height="?attr/actionBarSize"
Android:background="#333333" app:popupTheme="@style/AppTheme.PopupOverlay"
Android:layout_alignParentBottom="true"
>
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="vertical"
Android:layout_gravity="left">
<Button
Android:layout_width="50dp"
Android:layout_height="50dp"
Android:background="@drawable/folder"
Android:id="@+id/pdfViewer"/>
</LinearLayout>
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="vertical"
Android:layout_gravity="center"
>
<Button
Android:layout_width="60dp"
Android:layout_height="60dp"
Android:background="@drawable/cameranew"
Android:id="@+id/btn"
/>
</LinearLayout>
</Android.support.v7.widget.Toolbar>