【问题标题】:Action Bar icon as up enabled not the title启用的操作栏图标不是标题
【发布时间】:2013-10-21 18:04:09
【问题描述】:

如何使应用程序图标在 actionbarsherlock(不是仅标题图标)中启用,就像在什么应用程序中一样。

【问题讨论】:

    标签: android android-actionbar


    【解决方案1】:

    自 Android 4.2.2 起,标题可与图标一起单击。 WhatsApp 使用自定义视图来显示两行标题。这将禁用沿途的标题点击。你也可以这样做:

    ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setCustomView(R.layout.ab_title);
    
    TextView title = (TextView) findViewById(android.R.id.text1);
    title.setText("Title");
    

    /res/layout/ab_title.xml:

    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@android:id/text1"
        style="@style/TextAppearance.Sherlock.Widget.ActionBar.Title"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:ellipsize="end"
        android:gravity="center_vertical" />
    

    【讨论】:

    • 完美答案,谢谢。我一直想知道为什么 nexus 4 也让标题可以点击。
    • 谢谢,像魅力一样工作
    【解决方案2】:

    将以下内容添加到您的 onCreate 方法中:

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    

    并在您的活动中定义以下覆盖方法:

    @Override
    public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            break;
        default:
            return super.onOptionsItemSelected(item);
        }
        return true;
    }
    

    【讨论】:

    • 但它也使活动标题可点击。
    • 你确定吗?因为它在我的应用程序中没有这样做
    • onBackPressed() 错了!主页按钮和返回按钮不一样。请改用NavUtils.navigateUpFromSameTask(this)
    【解决方案3】:

    我的朋友,我认为这是 Android 版本/构建“功能”,因为我有两台设备(Nexus S 和 Nexus 7)(Android 4.1.2 和 Android 4.2.2)并且我正在部署我的应用程序在两台设备上开发,完全相同的代码,在 Nexus S 上,图标是“向上”,在 Nexus 7 上,图标和标题都是“向上”。

    【讨论】:

    • 我可以看到的一种方法是创建自己的自定义 ActionBar 布局/视图。假设这是值得的工作。
    【解决方案4】:

    确保您的 android:minSdkVersion="11" 可以在清单文件中看到,Up 图标已包含在 APK 11 中。将以下内容添加到您的 onCreate 方法对于主页放置 getActionBar().setDisplayHomeAsUpEnabled(false) ;确保它是假的,并且在其他活动中保持启用它,即“真”。我制作了一个小样本,请尝试以下链接,这可能会帮助您将其导入您的工作空间

    http://www.mediafire.com/?hktdvts7yyduwv1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-13
      • 1970-01-01
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-19
      • 1970-01-01
      相关资源
      最近更新 更多