Je rencontre un problème avec ma mise en page affichée en mode portrait/paysage. Fondamentalement, la hiérarchie de ma mise en page va comme ceci: Main (Vue de l'espace de travail) -> TextView + Listview (w/BaseAdapter) -> Listview Item.J'ai un problème de coupure/de décalage de ma mise en page
Mon problème est, si je commence en mode portrait mes articles s'affichent correctement comme ils le devraient. Mais si je fais tourner l'appareil, ce qui se passe, c'est que ma mise en page entière est décalée d'environ un demi-écran (par exemple, quand je change, environ la moitié du côté gauche de la vue est complètement noire). au milieu de l'écran - je peux voir les éléments qui sont censés être alignés à gauche au milieu). D'un autre côté, si je commence en mode paysage et que je passe en mode portrait, la moitié du côté droit de l'écran est complètement noire et le «bord droit» est au milieu et je peux voir mes objets les plus à droite se terminer.
Voici la mise en page Je travaille avec ... d'abord mon point de vue au sein de l'espace de travail (Listview utilise un BaseAdapter):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/tvMainChannel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Disconnected"
android:textColor="#FFFFFF"
android:singleLine="true"/>
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
Et voici mes articles individuels ListView qui sont gonflés dans ce qui précède ListView (dans une disposition horizontale, chaque élément doit afficher de gauche à droite: image, texte, image):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal">
<ImageView android:id="@+id/images"
android:layout_height="30dp"
android:layout_width="wrap_content"
android:paddingLeft="5px"
android:paddingRight="5px"
android:layout_alignParentLeft="true"/>
<ImageView android:id="@+id/images_ping"
android:layout_height="30dp"
android:layout_width="wrap_content"
android:paddingLeft="5px"
android:paddingRight="5px"
android:layout_alignParentRight="true"/>
<TextView android:id="@+id/text"
android:layout_height="30dp"
android:layout_width="wrap_content"
android:gravity="center_vertical"
android:text="Username"
android:textColor="#FFFFFF"
android:layout_toRightOf="@+id/images"/>
</RelativeLayout>
J'ai essayé de commutation entre les choses linéaires et relatif, mais je suis devenu pas où .. .kind d'à perte de ce qui pourrait être t Il en est la cause.
Toute idée est très appréciée.
Merci!
EDIT: Pour un peu plus de précisions, voici mon fichier main.xml qui utilise l'espace de travail:
<?xml version="1.0" encoding="utf-8"?>
<com.test.MultiView xmlns:app="http://schemas.android.com/apk/res/com.test"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mvMain"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
app:default_screen="0">
<include android:id="@+id/main_rtb" layout="@layout/main_rtb" />
<include android:id="@+id/main_listview" layout="@layout/main_listview" />
</com.test.MultiView>
Appréciez la réponse. Cela ne semble pas fonctionner. Le TextView (@ + id/tvMainChannel) et ListView (@android: id/list) sont toujours décalés sur l'axe des x, et commencent à ce qui semble être la largeur exacte de l'affichage du portrait en commençant par le bord droit de l'écran aller à gauche (c'est-à-dire commencer x = bord droit en paysage - largeur du portrait). – BCS
Oh je vois. Quelle est la valeur de votre android: screenOrientation dans votre fichier manifeste? –
Il n'y a pas un ensemble dans mon fichier manifeste; cependant, j'utilise android: configChanges = "keyboardHidden | orientation" pour éviter que mon activité ne soit détruite lors de la rotation de l'écran – BCS