web-dev-qa-db-ja.com

Androidで下部ツールバーを作成する最良の方法。

Sample Toolbar

同様のツールバーを実現するための優れたアプローチを探しています。画像ボタンを使用する必要がありますか?

13
Ved Agarwal
_<Android.support.v7.widget.Toolbar  xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/actionbarT"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/thebackgroundimageyouwant"
Android:minHeight="?attr/actionBarSize"
app:theme="@style/Base.Theme.AppCompat.CompactMenu" >

    <LinearLayout
        Android:id="@+id/toolbarmenucontainer"
        Android:layout_width="match_parent"
        Android:weightSum="3"
        Android:layout_height="match_parent"
        Android:orientation="horizontal" >

        <ImageButton
            Android:layout_width="0dp"
            Android:layout_height="match_parent"
            Android:background="@drawable/preferedbackground"
            Android:clickable="true"
            Android:scaleType="fitXY"
            Android:layout_weight = "1"
            Android:src="@drawable/preferredimage" />

         <ImageButton
            Android:layout_width="0dp"
            Android:layout_height="match_parent"
            Android:background="@drawable/preferedbackground"
            Android:clickable="true"
            Android:scaleType="fitXY"
            Android:layout_weight = "1"
            Android:src="@drawable/preferredimage" />

        <ImageButton
            Android:layout_width="0dp"
            Android:layout_height="match_parent"
            Android:background="@drawable/preferedbackground"
            Android:clickable="true"
            Android:scaleType="fitXY"
            Android:layout_weight = "1"
            Android:src="@drawable/preferredimage" />

    </LinearLayout>

</Android.support.v7.widget.Toolbar>
_

アイデアは、あなたが望むもののように水平にレイアウトし、ToolBarに対してToolBar.setTitle()またはsetnagivationを行わないということです。また、optionsMenuを追加する必要もありません。必要なもののように裸になります。

それを試して、それが要件に合うかどうかを確認してください。背景と画像srcをImageButtonsに追加することを忘れないでください

12
Elltz

私はこの質問が非常に古いことを知っていますが、同じことを探している他の人々のために答えるのに遅すぎることは決してないと思います。私はちょうどこのチュートリアルで このチュートリアルこれらの公式ドキュメント を見つけました下部ナビゲーションは公式にAndroidでサポートされており、アプリに3〜5個のトップレベルのナビゲーション場所がある場合、マテリアルデザインガイドラインの一部になります。これを探し回る時間。

6
AlexW.H.B.

ソリューションをGitHubで共有しました。 Xamarin向けですが、レイアウトは同じです。

http://behsaadramez.com/2015/11/26/androidbottomtoolbar/

2
Behsaad Ramez

いつかこの質問に来ました。ボタンの下にテキストを追加できませんでした。コードスニペットとスクリーンショットを使用して問題を解決した方法を記事に書きました ここで、Androidのツールバーのようなgoolge plusを作成します

1
aks

さて、前回これをやろうとしたときに、レイアウトの下部でButtonでラップされたLinearLayoutsを使用しました。次のようなものです。

<LinearLayout>
// The other stuff on the view
(...)
</LinearLayout>
// (This is the part you can try to use as a toolbar)
<LinearLayout
    Android:orientation="horizontal"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content">

    <Button
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="bottom"
        style="?android:attr/borderlessButtonStyle"
        Android:textStyle="bold"
        Android:background="@drawable/button_tab"
        Android:textColor="#ffffffff"
        Android:text="@string/bt_orders"
        Android:id="@+id/bt_orders"
        Android:layout_weight="1" />

    <Button
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="bottom"
        style="?android:attr/borderlessButtonStyle"
        Android:textStyle="bold"
        Android:background="@drawable/button_tab"
        Android:textColor="#ffffffff"
        Android:text="@string/bt_credit"
        Android:id="@+id/bt_credit"
        Android:layout_weight="1" />
</LinearLayout>

そして、私が使用したスタイルと背景に興味があるなら、ここにあります:

// button_tab.xml
<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:state_pressed="true">
        <shape Android:shape="rectangle">
            <stroke
                Android:width="1dp"
                Android:color="@color/button_pressed" />
            <solid Android:color="@color/button_pressed" />
        </shape>
    </item>
    <item Android:state_focused="true" >
        <shape Android:shape="rectangle">
            <stroke
                Android:width="1dp"
                Android:color="@color/button_focus" />
            <solid Android:color="@color/button_focus" />
        </shape>
    </item>
    <item>
        <shape Android:shape="rectangle">
            <stroke
                Android:width="1dp"
                Android:color="@color/button_normal" />
            <solid Android:color="@color/button_normal" />
        </shape>
    </item>
</selector>
0
Mauker