我正在尝试向ToolBar添加菜单.
onCreateOptionsMenu我的方法Activity被调用,但没有菜单出现.
这是dashboard.xml(来自菜单文件夹)
<?xml version="1.0" encoding="utf-8"?>
<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.app.android.ui.dashboard.DashboardActivity">
<item
android:id="@+id/action_scan_qr"
android:icon="@drawable/ic_drawer"
android:title="@string/menu_scan_qr"
app:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)
注意:此菜单的图标比操作栏的背景颜色更暗,因此它应该是可见的.
活动中的充气菜单:
public class DashboardActivity extends ActionBarActivity {
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.dashboard, menu);
return true;
}
Run Code Online (Sandbox Code Playgroud)
以及该应用程序的主题:
<style name="Theme.Application.Base" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@android:color/white</item>
<item name="colorPrimaryDark">@android:color/white</item>
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="drawerArrowStyle">@style/Theme.Application.DrawerArrowStyle</item>
<item name="android:textColorSecondary">@android:color/darker_gray</item>
</style>
Run Code Online (Sandbox Code Playgroud)
为什么onCreateOptionsMenu被调用但菜单没有出现.我正在使用appcompat-v7:21.0.3
编辑:
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getContentViewId());
toolbar = (Toolbar) findViewById(R.id.tool_bar);
if (toolbar == null) …Run Code Online (Sandbox Code Playgroud) 使用新的设计库,我们应该设置工具栏标题CollapsingToolbarLayout,而不是它Toolbar自己(至少在使用折叠工具栏时).但setTitle()只在以下特定情况下更新标题:
1)当CollapsingToolbarLayout还没有标题时
2)此刻CollapsingToolbarLayout变得完全崩溃
3)此刻CollapsingToolbarLayout开始扩大
我实际上要做的是让标题成为EditText完全展开时的标题,允许用户为他/她的角色命名,然后显示为标题.我试图通过调用invalidate()或者requestLayout()以及这两种方法来强制解决这个问题
CollapsingToolbarLayout.没有效果.
有任何想法吗?
android material-design android-toolbar android-design-library android-collapsingtoolbarlayout
我刚刚将一个Android工具栏添加到我正在处理的应用中.工具栏放置正确,工具栏布局显示在显示屏顶部.但是,工具栏显示为空白彩色条...应用程序标题和溢出图标不会显示在工具栏中.有关如何修复的任何想法?
ToolbarActivity.java:
public abstract class ToolbarActivity extends ActionBarActivity {
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
setSupportActionBar(toolbar);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setTitle("app name");
}
}
Run Code Online (Sandbox Code Playgroud)
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/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
android:background="@color/ColorPrimary" >
</android.support.v7.widget.Toolbar>
menu_main.xml:
<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=".MainActivity">
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)
style.xml:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="colorPrimary">@color/ColorPrimary</item>
<item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
</style>
Run Code Online (Sandbox Code Playgroud) 我想用折叠的collapsingToolbar加载一个片段(即以非扩展形式).当我设置collapsingToolbar的标题而不改变appbarLayout布局参数时,标题设置正确,我可以看到标题.
问题是,我还需要更改appBarLayout布局参数以防止collapsingToolbar扩展(即我希望它看起来和行为像这个特定片段的常规非折叠工具栏).但是,这样做会使标题不再出现.
我尝试了什么: 我尝试过在这些页面上列出的解决方案无济于事:
collapsingToolbarLayout.setTitleEnabled(true); 似乎没有任何影响MainActivity.java 我相信我已将问题隔离到这些行,但我不知道如何解决它.
collapsingToolbarLayout.setTitle("All Recent"); // works
appBarLayout.setExpanded(false, true); // works
// However, after adding the following lines, the above no longer works and the title does not appear in the toolbar
CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams)appBarLayout.getLayoutParams();
lp.height = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 80, getResources().getDisplayMetrics());
appBarLayout.setLayoutParams(lp);
Run Code Online (Sandbox Code Playgroud)
activity_main.xml中
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar_layout"
android:layout_width="match_parent"
android:layout_height="@dimen/detail_backdrop_height"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/backdrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:scaleType="centerCrop" …Run Code Online (Sandbox Code Playgroud) android android-collapsingtoolbarlayout android-appbarlayout