小编fso*_*ety的帖子

从 Fragment 添加/删除 ActionBar 阴影

我有一个在片段之间切换的活动。

我希望操作栏完整显示一些片段,而另一些片段我希望它是透明的。

我使用了在这个问题的答案中找到的技巧,其中我基本上有一个主题:

<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)

那么我如何根据显示的片段添加/删除操作栏阴影?否则,如何隐藏没有动画的操作栏?

谢谢!

android android-fragments android-actionbar

5
推荐指数
0
解决办法
376
查看次数

隐藏操作栏会导致RelativeLayout中底部对齐的项目跳转

我有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)

android relativelayout android-actionbar

5
推荐指数
1
解决办法
254
查看次数