使工具栏仅在一个活动/片段中透明



我需要我的工具栏是透明的,但只能在一个活动/片段中。我知道这样做:

toolbar.getBackground().setAlpha(0);

但它也更改了其他片段的工具栏。是否有一种替代方案或方法使其仅适用于一个片段。

通过这种方式,我需要在每个活动/片段中设置工具栏的alpha

toolbar.getBackground().setAlpha(255);

这是唯一的方法还是?

问候,

如果一个活动中的片段控制流是这样的,那么定义如下的标准切换片段函数,那么它是非常明显的-

public void switchfragment(){
     switch(fragment_number){
         case 1:
            hideActionBar() ; // or hideToolbar() as u want
            return new Fragment1();
         case 2:
            showActionBar();  //or showtoolbar() as u want
            return new Fragment2();
}
}

我不认为你必须从单个片段中设置它,除非你试图从我通常避免的片段中切换片段。

您可以使用主题:

<style name="my.ToolbarActivity" parent="base">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBarOverlay">false</item>
    <item name="windowActionModeOverlay">false</item>
</style>
<style name="my.ToolbarActivity.Overlay" parent="my.ToolbarActivity">
    <item name="android:windowActionBarOverlay">true</item>
    <item name="windowActionModeOverlay">true</item>
</style>
<style name="my.ToolbarActivity.Overlay.Transparent" parent="my.ToolbarActivity.Overlay">
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

然后在您的清单中:

 <activity
        android:name=".activity.TransparentActivity"
        android:theme="@style/my.ToolbarActivity.Overlay.Transparent"
        ....
  </activity
  <activity
        android:name=".activity.OverlayActivity"
        android:theme="@style/my.ToolbarActivity.Overlay"
        ...
  </activity>

最新更新