2014-02-21 52 views
0

我有两种类型的片段需要切换。每次创建我需要的片段的新实例。ActionBar主页图标的奇怪行为

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

问题是,在下一次显示第一个片段后,显示第二个片段后,主屏幕图标保持可点击状态,但看起来不像是up。问题是为什么它是可点击的,如果当前可见的片段将其设置为看起来不像向上按钮?

我正在使用appcompat-v7库。

回答

0

请将home buttom eanabled设置为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> 

记住为支持库做到这一点。试试看看它是否有诀窍。

+0

不,它只是驳回了主页图标。但标题仍然可以点击。 – Lingviston

+0

它确实有效。不过,我编辑了一些东西。你可以试试这个吗? –

+0

您必须创建一个新主题并将其应用于您的片段的onCreateView方法中的动态。编写这段代码 - final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(),R.style.yourCustomTheme);来源 - http://stackoverflow.com/questions/9469174/set-theme-for-a-fragment –