Je viens juste de commencer le développement Android à partir de IOS et je suis tombé sur un problème. Et après un jour d’essai, j’ai décidé que je demanderais aux gens de déborder de la pile.
Donc mon problème:
J'ai une application et dans la barre d'action (par défaut, pas de sherlock), je veux 1 logo et 2 lignes de texte. Et sur Internet, je trouve le setCustomView pour la barre d'action. Et la coutume XML est chargé mais je ne peux pas obtenir la mise en page correcte.
Donc, d’abord, j’ai configuré la barre d’action:
private void setupActionBar() {
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
LayoutParams lp1 = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
View customNav = LayoutInflater.from(this).inflate(R.layout.actionbar, null); // layout which contains your button.
actionBar.setCustomView(customNav, lp1);
}
Que le xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_gravity="fill_horizontal"
Android:orientation="horizontal"
Android:background="@color/Blue">
<TextView
Android:id="@+id/text_left"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/title_menu"
Android:textColor="@color/White"
Android:paddingLeft="5dp"
Android:layout_gravity="left"/>
<ImageView
Android:id="@+id/icon"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/Icon"
Android:layout_gravity="center"/>
<TextView
Android:id="@+id/text_right"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/title_help"
Android:layout_gravity="right"
Android:textColor="@color/White"
Android:paddingRight="5dp"/>
</LinearLayout>
Mais le résultat est quelque chose que je ne cherche pas:
Alors qu'est-ce que j'oublie/fais mal/ou dois-je faire?
essayez de changer la mise en page racine en mise en page relative
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_gravity="fill_horizontal"
Android:orientation="horizontal">
<TextView
Android:text="left text"
Android:layout_toLeftOf="@+id/icon"
Android:layout_alignParentLeft="true"
Android:id="@+id/text_left"
Android:gravity="left"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:paddingLeft="5dp"/>
<ImageView
Android:layout_centerHorizontal="true"
Android:id="@+id/icon"
Android:layout_width="10dp"
Android:layout_height="wrap_content"
Android:src="@drawable/bg_sunrise"
Android:layout_gravity="center"/>
<TextView
Android:text="Right txt"
Android:layout_toRightOf="@+id/icon"
Android:id="@+id/text_right"
Android:layout_width="match_parent"
Android:gravity="right"
Android:layout_height="wrap_content"
Android:layout_gravity="right"
Android:paddingRight="5dp"/> </RelativeLayout>
vous devez:
Vous pouvez également utiliser LinearLayout en tant que racine et ajouter Android: weightSum et spécifier un poids de mise en page sur les trois vues enfant.
Qu'est-ce qu'Android: weightSum in Android, et comment ça marche?