【问题标题】:Strange behavior of ActionBar home iconActionBar 主页图标的奇怪行为
【发布时间】:2014-02-21 13:26:03
【问题描述】:

我有 2 种类型的片段,我想在它们之间切换。每次我创建我需要的片段的新实例时。

在第一个片段中,我需要有可点击的主页图标,因此我将适当的 (setDisplayShowHomeAsUpEnabled) 显示选项设置为 true,主页图标开始看起来像一个向上。在第二个中,我不需要它,所以我将适当的显示选项设置为 false 并且它停止向上查找。我正在听对父活动中操作栏图标的点击。

问题是,在第二个片段显示一次之后,我下次显示第一个片段时,主页图标仍然可点击,但看起来不像向上。问题是如果当前可见的片段设置它看起来不像向上按钮,为什么它是可点击的?

我正在使用 appcompat-v7 库。

【问题讨论】:

    标签: android android-actionbar android-support-library


    【解决方案1】:

    请将主页按钮设置为 false。

     getSupportActionBar().setHomeButtonEnabled(false);
    

    让我知道这是否有效。 :)

    编辑 - 还有一种方法,但我不确定。

    你可以为你的 ActionBar 标题设置样式,在那里你可以将它设置为不可点击。

     <item name="titleTextStyle">@style/TitleTextStyle</item>
    

    这里是 TitleTextStyle,

    <!-- action bar title text -->
    <style name="TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@color/actionbar_text</item>
        <item name="android:clickable">false</item>
    </style>
    

    记得对支持库也这样做。试试看能不能解决问题。

    【讨论】:

    • 不,它只是关闭主页图标。但标题仍然是可点击的。
    • 它确实对我有用。但是我编辑了一些东西。你可以试试这个吗?
    • 您必须创建一个新主题,并在片段的 onCreateView 方法中动态地将其应用于您的活动。编写这段代码 - final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.yourCustomTheme);来源 - stackoverflow.com/questions/9469174/set-theme-for-a-fragment
    • 但我需要动态使其可点击或不可点击。我无法通过样式实现这一点。
    • 为什么不呢,在第二个 Fragment 的 onCreateView() 中应用这个样式,在第一个 Fragment 中应用一个不同的样式。
    猜你喜欢
    • 2012-11-22
    • 2019-10-16
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多