我有一个在片段之间切换的活动。
我希望操作栏完整显示一些片段,而另一些片段我希望它是透明的。
我使用了在这个问题的答案中找到的技巧,其中我基本上有一个主题:
<item name="windowActionBarOverlay">true</item>
Run Code Online (Sandbox Code Playgroud)
在我的布局中,我想要一个静态/完整的操作栏,我将添加:
`layout_marginTop:"?android:attr/actionBarSize"`
Run Code Online (Sandbox Code Playgroud)
在我想要透明操作栏的片段中,我会这样做:
getActivity().getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.argb(0, 0, 0, 0)));
Run Code Online (Sandbox Code Playgroud)
问题:在后一种情况下,操作栏阴影仍然显示。如果我添加以下内容,我可以禁用它:
<item name="android:windowContentOverlay">@null</item>
Run Code Online (Sandbox Code Playgroud)
但现在当我希望操作栏完全/不透明显示时该怎么办?我希望阴影也随之显示。那么有没有办法触发阴影的开启和关闭呢?
或者,我可以放弃整个造型交易,只做:
getActivity().getSupportActionBar().show(); // or hide
Run Code Online (Sandbox Code Playgroud)
然后在我的布局中,我可以从操作栏中手动添加我想要的后退按钮。在这种情况下的问题是操作栏滑入和滑出并且看起来很草率。我无法打电话:
getActivity().getSupportActionBar().setShowHideAnimationEnabled(false);
Run Code Online (Sandbox Code Playgroud)
因为它告诉我:
ActionBar.setShowHideAnimationEnabled 只能从同一库组内调用 (groupId=com.android.support)
那么我如何根据显示的片段添加/删除操作栏阴影?否则,如何隐藏没有动画的操作栏?
谢谢!
我有RelativeLayout一个与父底部对齐的视图。当我调用actionBar.hide()该视图时,随着操作栏向上滑动,视图也随之向上滑动,然后,一旦操作栏完全消失,视图就会跳回到底部。
我如何防止这种情况发生?我希望视图在操作栏向上滑动时保持在底部。
标签是底部对齐的。(您在上面看到的灰色内容是一个正在加载的不同片段,因此请忽略它)
码:
public class MainFragment extends Fragment {
public View onCreateView(...) {
return inflater.inflate(R.layout.fragment_main);
}
public void onResume() {
super.onResume();
getActivity().getActionBar().hide();
}
public void onPause() {
super.onPause();
getActivity().getActionBar().show();
}
}
Run Code Online (Sandbox Code Playgroud)
R.layout.fragment_main:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="test" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)