Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android棒棒糖上声明扩展高度工具栏/操作栏?_Android_Android Actionbar - Fatal编程技术网

如何在Android棒棒糖上声明扩展高度工具栏/操作栏?

如何在Android棒棒糖上声明扩展高度工具栏/操作栏?,android,android-actionbar,Android,Android Actionbar,我在谷歌设计指南中看到了扩展高度应用程序栏。我如何在Android棒棒糖中实现这些 您需要使用新的小部件来实现这一点。工具栏具有特殊的处理功能,它的最小高度用于声明用于按钮(和操作)的空间量 在下面的示例中,我们将高度设置为128dp(规范中定义为56dp+72dp),但将android:minHeight保留为标准actionBarSize(通常为56dp)。这意味着按钮和动作被限制在顶部56dp的垂直位置。然后我们可以使用android:gravity将标题定位在底部 <Toolbar

我在谷歌设计指南中看到了扩展高度应用程序栏。我如何在Android棒棒糖中实现这些

您需要使用新的小部件来实现这一点。工具栏具有特殊的处理功能,它的最小高度用于声明用于按钮(和操作)的空间量

在下面的示例中,我们将高度设置为128dp(规范中定义为56dp+72dp),但将
android:minHeight
保留为标准
actionBarSize
(通常为56dp)。这意味着按钮和动作被限制在顶部56dp的垂直位置。然后我们可以使用
android:gravity
将标题定位在底部

<Toolbar
    android:id="@+id/toolbar"
    android:layout_height="128dp"
    android:layout_width="match_parent"
    android:minHeight="?android:attr/actionBarSize"
    android:background="?android:attr/colorPrimary"
    android:gravity="bottom" />


如果您使用的是AppCompat,则将声明改为使用android.support.v7.widget.Toolbar,并使用其属性。

感谢您的问题、答案以及在本机和supportlibrary中实现工具栏:)

我们可以玩得更多。我们可以在运行时使用高度和最小高度

高度就是工具栏的高度,很简单,每个人都能理解,重力就是根据这个高度作用的

最低高度更复杂,不应为最低56dp。此最小高度用于放置菜单项的行。这条线在你身高的中间

因此,您可以将此代码添加到您的活动中,以便自己查看差异。:)

其中工具栏位于:

toolbar=(toolbar)findviewbyd(R.id.toolbar)

进行此操作时,您可以获得:

但如果您离开动画继续,您将获得:

这就是为什么在大多数情况下,将工具栏android:layout_height设置为wrap_内容是一个不错的选择,因为工具栏将根据其内容调整其高度(您可以在运行时更改内容:)

这也是您在运行时更改工具栏大小的方式


感谢Chris Banes在actionbar上所做的出色工作。

如果使用
layout\u height
是一条可行之路,我想这里介绍的解决方法也不是一条可行之路,而是正确之路?我也希望能够声明维度的表达式,但我们不能。为了获得额外的分数,请使用增量调整操作栏的大小,例如
@dimen/action\u bar\u size\u x2
,在手机上使用112dp,在平板电脑上使用128dp
android:paddingBottom
按钮重力设置为
bottom
时引入奇怪的间距。
titleMarginBottom
属性似乎是这里更好的选择,不是吗?@RomanNurik日历应用程序中扩展的工具栏是如何工作的?任何hints@MohammadHadi我想象postICS的定义如下:
boolean postICS=Build.VERSION.SDK\u INT>=Build.VERSION\u CODES.JELLY\u BEAN
Runnable toolBarAnimator=new Runnable() {
        @Override
        public void run() {
            if(postICS){
//                toolbar.setTranslationX(iteration);
//                toolbar.setElevation(iteration);
                toolbar.setMinimumHeight(iteration * 5);
                toolbar.getLayoutParams().height++;
            }
            uiThreadHanlder.postDelayed(this,16);
            iteration++;
            if(iteration>150)iteration=0;
        }
    };
    Handler uiThreadHanlder=new Handler();
    int iteration=0;


    @Override
    protected void onResume() {
        super.onResume();
        //launch the animation
        uiThreadHanlder.postDelayed(toolBarAnimator, 1000);
    }


    @Override
    protected void onPause() {
        super.onPause();
        //stop the animation
        uiThreadHanlder.removeCallbacks(toolBarAnimator);
    }