Ich fange gerade mit der Android-Entwicklung an, die von IOS kommt und stolperte erneut über ein Problem. Und nach einem Versuchstag entschied ich, dass ich die Leute nach Stack-Überlauf fragen werde.
Also mein Problem:
Ich habe eine App und in der Aktionsleiste (standardmäßig kein Sherlock) möchte ich 1 Logo und 2 Textzeilen. Durch das Internet füge ich setCustomView für die Aktionsleiste hinzu. Und der Brauch xml ist geladen, aber ich kann das Layout nicht richtig einstellen.
Also erst mal die Aktionsleiste einrichten:
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);
}
Als das 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>
Aber das Ergebnis ist etwas, wonach ich nicht suche:
Also was vergesse ich/mache ich falsch/oder sollte ich das tun?
versuchen Sie, das Stammlayout in ein relatives Layout zu ändern
<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>
sie müssen:
Sie können LinearLayout auch als Root verwenden und Android: weightSum hinzufügen und eine layout_weight für die drei untergeordneten Ansichten angeben.
Was ist Android: weightSum in Android und wie funktioniert es?