相关疑难解决方法(0)

Android工具栏菜单未显示

我正在尝试向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)

android android-actionbar-compat

27
推荐指数
6
解决办法
6万
查看次数

除非折叠,否则CollapsingToolbarLayout setTitle()不会更新

使用新的设计库,我们应该设置工具栏标题CollapsingToolbarLayout,而不是它Toolbar自己(至少在使用折叠工具栏时).但setTitle()只在以下特定情况下更新标题:

1)当CollapsingToolbarLayout还没有标题时

2)此刻CollapsingToolbarLayout变得完全崩溃

3)此刻CollapsingToolbarLayout开始扩大

我实际上要做的是让标题成为EditText完全展开时的标题,允许用户为他/她的角色命名,然后显示为标题.我试图通过调用invalidate()或者requestLayout()以及这两种方法来强制解决这个问题 CollapsingToolbarLayout.没有效果.

有任何想法吗?

android material-design android-toolbar android-design-library android-collapsingtoolbarlayout

26
推荐指数
2
解决办法
2万
查看次数

标题等未在Android工具栏中显示

我刚刚将一个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)

android toolbar android-toolbar

15
推荐指数
1
解决办法
3万
查看次数

更改appbarLayout后,collapsingToolbarLayout.setTitle(title)不起作用

我想用折叠的collapsingToolbar加载一个片段(即以非扩展形式).当我设置collapsingToolbar的标题而不改变appbarLayout布局参数时,标题设置正确,我可以看到标题.

问题是,我还需要更改appBarLayout布局参数以防止collapsingToolbar扩展(即我希望它看起来和行为像这个特定片段的常规非折叠工具栏).但是,这样做会使标题不再出现.

我尝试了什么: 我尝试过在这些页面上列出的解决方案无济于事:

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

11
推荐指数
1
解决办法
1万
查看次数