Articles of android toolbar

Material Design – AppCompat工具栏不显示阴影

我正在使用AppCompat V7中的工具栏replace上一个操作栏,并希望获得上一个操作栏的工具栏阴影。 但工具栏默认情况下没有影子,我已经尝试了从reddit中提到的修复。 但没有运气。 设置阴影的代码: mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); 工具栏布局: <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:minHeight="?attr/actionBarSize" android:background="#F1F1F1" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="0dp" android:layout_margin="0dp" foreground="?android:windowContentOverlay"> 活动布局: <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity" android:layout_width="match_parent" android:id="@+id/drawer_layout" android:layout_height="match_parent"> <!– activity view –> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <include android:id="@+id/toolbar" layout="@layout/toolbar" /> <FrameLayout android:id="@+id/fragment_container" android:layout_below="@id/toolbar" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout> <!– navigation drawer –> <RelativeLayout android:id="@+id/left_drawer" android:layout_gravity="start" android:layout_width="match_parent" android:background="#fff" […]

什么是正确的方式来使用工具栏和SwipeRefreshLayout?

我正在尝试使用SwipeRefreshLayout和一个工具栏,但每次我都使用工具栏上出现的进度圈,这在devise方面真的很糟糕。 我试着把SwipeRefreshLayout放在工具栏下面,但是这并不起作用,进度圈仍然出现在它的顶部(状态栏上方)。 我想要像在Gmail应用程序中一样使用工具栏和布局。 我正在使用AppCompat库。 这是我的代码: <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swipe_container" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent"> <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <include layout="@layout/bluetooth_toolbar" android:id="@+id/bluetooth_toolbar"/> <TextView android:id="@+id/swipeTo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Swipe down to refresh" android:textSize="20sp" android:layout_below="@+id/bluetooth_toolbar" android:layout_centerHorizontal="true" /> <ListView android:id="@+id/newDevices" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/swipeTo" android:layout_marginTop="50dp" /> <ListView android:id="@+id/pairedDevices" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/newDevices" android:layout_marginTop="50dp" /> </RelativeLayout> </ScrollView> </android.support.v4.widget.SwipeRefreshLayout> 和 public class BluetoothActivity […]

如何用我的主题指定黑暗的行动模式

我知道有两个关于样式的动作栏的上下文动作栏(ActionMode)的一些问题,但他们似乎并没有解决我之后的东西。 我正在使用带有浅色主题和黑暗操作栏的工具栏。 工具栏看起来像我想要的,但行动模式看起来像普通的黑暗主题。 我需要改变我的风格,以获得黑暗的主题行动模式(不只是行动栏)? 看来我应该能够通过点击进入Theme.AppCompat快速地做到这Theme.AppCompat因为这显示了CAB我想要的,但我不希望其他应用程序变黑。 我只关心API 14+,并使用支持工具栏代替操作栏。 这是我的基本风格 <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="android:actionModeBackground">@color/colorActionMode</item> <item name="android:windowActionModeOverlay">true</item> </style> 工具栏样式 <style name="AppTheme.Toolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> <item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item> <item name="actionMenuTextColor">@color/abc_primary_text_material_dark</item> <item name="android:textColorSecondary">@color/abc_primary_text_material_dark</item> <item name="android:background">@color/colorPrimaryDark</item> </style> 工具栏布局文件(在这里设置popupTheme似乎没有任何影响)。 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?android:attr/actionBarSize" app:theme="@style/AppTheme.Toolbar" app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" android:popupTheme="@style/ThemeOverlay.AppCompat.Dark" android:elevation="2dp" android:focusable="false"/> 这是我的工具栏(这是我想要的) 这是我的ActionMode(我需要反转) 这是我想要的动作模式看起来像(我通过改变我的风格从Theme.AppCompat而不是Theme.AppCompat.Light.DarkActionBarinheritance而来的。问题是,其余的应用程序变暗,我不想。

当我们使用app时,更改选项菜单的文本颜色:showAsAction =“always”

我正在使用工具栏,并使用相应的操作选项。 我的问题是这个我想在白色的工具栏上显示“保存”文本,我应用了许多风格,但总是显示为黑色。 但是当选项显示为popup式时,文本颜色总是白色的。 我谷歌这很多,但没有解决scheme。 这是我的代码: 工具栏 <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/tools" android:id="@+id/my_awesome_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:theme="@android:style/ThemeOverlay.Material.Light" app:popupTheme="@style/Theme.AppCompat.NoActionBar" android:background="@drawable/tb_header" android:minHeight="?attr/actionBarSize"/> 款式 <style name="MStyle" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowBackground">@android:color/white</item> <item name="android:colorBackground">@android:color/black</item> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorAccent">@color/colorAccent</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="android:textAllCaps">false</item> <item name="android:popupMenuStyle">@style/MyPopupMenu</item> <item name="android:panelBackground">@android:color/holo_green_light</item> <item name="android:actionBarWidgetTheme">@style/AppTheme</item> </style> <style name ="MyPopupMenu" parent="android:Theme.Holo.Light"> <item name="android:popupBackground">@android:color/holo_green_light</item> </style> ****Option menu**** <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context="com.doubtfire.userprofiles.ParentProfileActivity"> <item android:id="@+id/action_skip" […]

如何点击工具栏后面的视图?

我有一个透明/半透明的背景覆盖内容的工具栏。 所以,在工具栏后面,可以看到可点击的视图。 问题是无法通过工具栏单击它们,因为工具栏正在捕获单击事件。 我尝试设置工具栏的android:clickable="false" , android:focusable="false"和android:focusableInTouchMode="false" ,但是没有效果。 我怎样才能发送一个点击通过工具栏到底层视图?

如何设置Android工具栏高度?

我想实现这一点: 我认为是制作一个更高的自定义工具栏,并正常使用tabhost和tabpager。 我已经实现了它,但工具栏显示正常的高度,所以它不显示我想要的,只是顶部。 这是正确的方法,还是有可能设置一个TabHost低于线性/相对布局? 因为我不需要把它作为一个行动栏。 相关守则 toolbar.xml <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toolbarTitle" android:orientation="vertical" android:background="@color/black" android:layout_width="match_parent" android:fitsSystemWindows="true" android:minHeight="?attr/actionBarSize" android:theme="@style/AppTheme" android:layout_height="wrap_content"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/img_logo" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="55dp" android:scaleType="centerInside" android:src="@drawable/logo_home" /> <TextView android:id="@+id/txt_version" android:text="@string/app_version" android:textColor="@color/white" android:layout_below="@+id/img_logo" android:paddingBottom="10dp" android:paddingTop="15dp" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content"/> </RelativeLayout> </android.support.v7.widget.Toolbar> 活动中的这个function: private void setupActionBar() { ActionBar ab = getSupportActionBar(); ab.setDisplayShowCustomEnabled(true); ab.setDisplayShowTitleEnabled(false); LayoutInflater […]

以编程方式设置工具栏高度Android

我想通过这种方式编程设置工具栏的高度: toolbar.setLayoutParams(new Toolbar.LayoutParams(LayoutParams.MATCH_PARENT, 42)); toolbar.setMinimumHeight(42); 但它会导致这个日志的致命exception – > android.widget.relativelayout$layoutparams cannot be cast to android.support.v7.Toolbar$layoutparams 我也尝试这个变种: RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) toolbar.getLayoutParams(); params.height = 42; toolbar.setLayoutParams(params); toolbar.setMinimumHeight(42); 它没有给出例外,但也不起作用,工具栏获取默认更大的高度,而不是我定义的。 但当然在xml设置参数的作品,但我也需要在java中设置高度。 所以请帮我解决这个问题。

Android的工具栏:如何在背景中有一个图像的工具栏和顶部的菜单项

使用材质devise如何创build带有背景图片的工具栏。 以下是我想要的: 我正在尝试下面的代码: <?xml version="1.0" encoding="utf-8"?> <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/actionBar" android:layout_width="match_parent" android:layout_height="200dp" app:contentInsetEnd="0dp" app:contentInsetStart="0dp" android:minHeight="200dp"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageViewplaces" android:src="@drawable/puri" android:layout_gravity="center"/> </android.support.v7.widget.Toolbar> 我得到的是:

标题中有两行的Android工具栏?

我想有一个双高度的操作栏(如在材料指南的例子),但(可能)标题中的两行文字。 我使用的标题是dynamic的,取决于页面中显示的项目。 如果有一行,它应该看起来像一个正常的操作栏,如果有两行,那么文本应该打破,并下降到一个新的行。 无论是否有一两行,操作button都应该保持与文本的第一行alignment。 我读到工具栏是做动作条的新dynamic方式,所以我想这可能是要走的路(我知道那里有答案,让你覆盖旧的行动栏标题文本视图,使其2行,但看起来不像我要去的)。 我正在使用Android 4.4+,所以我需要使用工具栏的appcompat v7库。 我发现在标题textview被限制为只有一行代码( https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v7/appcompat/src/android /support/v7/widget/Toolbar.java – 包含代码mTitleTextView.setSingleLine(); )。 然后我想,因为下面有一行字幕,我们可以改变这个文本的格式,我可以把它和标题文本一样格式化,如果需要的话,把我的标题分成两部分。 我写了一些基本的代码来分割string,但它依靠能够告诉我是否需要拆分它 – 实际上,我发现toolbar.isTitleTruncated()总是返回false(从我的工具栏对象直接访问和从getSupportActionBar().isTitleTruncated() )。 我在这里尝试了在Toolbar包装TextView的答案,但是当我这样做时,我无法使TextView与工具栏动作buttonalignment。 如果我正确地alignment一行(使用顶部填充),那么对于双行是错误的,反之亦然。 这是我的代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/view_content" android:layout_width="match_parent" android:layout_height="match_parent"> <fragment android:id="@+id/fragment_pager" android:name="com.example.ProductPagerFragment" android:layout_width="match_parent" android:layout_height="match_parent" /> <android.support.v7.widget.Toolbar android:id="@+id/product_details_toolbar" style="@style/style.toolbar" android:layout_width="match_parent" android:layout_height="@dimen/double_height_toolbar" android:minHeight="?attr/actionBarSize" android:gravity="top" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" > <TextView android:id="@+id/product_details_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="top" android:paddingTop="@dimen/padding_normal" style="@android:style/TextAppearance.Holo.Widget.ActionBar.Title.Inverse" android:maxLines="2" /> </android.support.v7.widget.Toolbar> 有没有人有任何想法? […]

在XML中设置工具栏徽标

是否有可能在XML中设置工具栏的标志? 到目前为止,我已经尝试过: 1。 <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" … android:logo="@drawable/my_logo" /> 2。 <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" … app:logo="@drawable/my_logo" /> 编辑 我在我的AppCompatActivity中使用工具栏作为操作栏: setSupportActionBar(findViewById(R.id.toolbar)); 我可以从代码设置标志: ((Toolbar) findViewById(R.id.toolbar)).setLogo(R.drawable.my_logo); 但我想要从布局XML或风格/主题XML设置标志。