在android中创建底部工具栏的最佳方法。

时间:2015-05-05 21:20:56

标签: android layout material-design

Sample Toolbar

寻找实现类似工具栏的好方法。我应该使用图像按钮吗?

6 个答案:

答案 0 :(得分:12)

<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.setTitle()ToolBar上的setnagivation,你也不必添加optionsMenu。所以它会像你想要的那样裸露。

尝试一下,看看它是否符合您的要求,记得将背景和图片src添加到ImageButton s

答案 1 :(得分:6)

我知道这个问题已经超级老了,但我认为为其他人寻求同样的事情,回答永远不会太晚。我刚刚在主题上找到了this tutorialthese official docs,因为Android正式支持底部导航,如果您的应用具有3到5个顶级导航位置,则它们是材料设计指南的一部分。我希望这有助于其他人,因为我花了很多时间环顾四周。

答案 2 :(得分:2)

我在GitHub上分享了我的解决方案。它适用于Xamarin,但布局是相同的。

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

答案 3 :(得分:1)

我回到这个问题了。我无法在按钮下方添加文字。我写了一篇文章,我是如何使用代码段和屏幕截图here, create goolge plus like toolbar in android

解决问题的

答案 4 :(得分:1)

这适用于我2020年,Android Studio 3.5.3是如何设置工具栏(已接受答案的下半部分)的方法。 How do I align views at the bottom of the screen? 您可以在androidx.appcompat.widget.Toolbar中使用工具栏布局/小工具

设置 alignParentBottom 属性设置为“ true”(将元素放置在RelativeLayout内)。

答案 5 :(得分:0)

好吧,上次我尝试这样做时,我在Button包裹的布局底部使用了LinearLayout,如下所示:

<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>