我需要我的工具栏是透明的,但只能在一个活动/片段中。我知道这样做:
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>