我需要我的工具栏是透明的,但只能在一个活动/片段中。 我知道这是做到这一点的方法:
toolbar.getBackground().setAlpha(0);
但它也会为其他片段更改工具栏。是否有替代或方法使其仅适用于一个片段。
这样我需要在每个活动/片段中设置工具栏的alpha。:
toolbar.getBackground().setAlpha(255);
这是唯一的方式还是?
此致
答案 0 :(得分:0)
您可以使用主题:
<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>
答案 1 :(得分:0)
如果你的片段控制流在一个活动中是这样的,你有一个标准的开关片段函数定义如下,那么它非常明显 -
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();
}
}
我不会看到一个案例,你必须从单个片段中设置它,除非你试图从我通常避免的片段中切换片段。