私は始めたばかりですAndroid開発はIOSから来て、再び問題にぶつかりました。そして、1日試した後、私は人々に尋ねることに決めましたスタックオーバーフロー。
だから私の問題:
アプリがあり、アクションバー(デフォルトではシャーロックなし)に、1つのロゴと2行のテキストが必要です。そしてインターネットを介して、アクションバーのsetCustomViewを見つけます。そして、カスタムxmlが読み込まれますが、レイアウトを正しく取得できません。
だから私は最初にアクションバーを設定します:
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);
}
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>
しかし、結果は私が探していないものです:
それで私は何を忘れている/間違っている/または私は何をすべきですか?
ルートレイアウトを相対レイアウトに変更してみてください
<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>
あなたはする必要があります:
また、LinearLayoutをルートとして使用し、Android:weightSumを追加して、3つの子ビューにlayout_weightを指定することもできます。