我有一个回收视图,我有媒体播放器。我想让他们在一个按钮点击全屏。我尝试了两种方法来实现这一点。
第二种选择比第一种更好一些,除了a.回收器视图的滚动和b.隐藏和显示状态栏,就像它与工具栏一起隐藏后再次显示一样,它覆盖了工具栏。
这是我用来设置为全屏和隐藏工具栏/通知栏的代码。
DisplayMetrics displaymetrics = new DisplayMetrics();
application.getCurrentActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
application.getCurrentActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
application.getCurrentActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
layoutParams.height = displaymetrics.heightPixels;
layoutParams.width = displaymetrics.widthPixels;
mTextureView.setLayoutParams(layoutParams);
为了返回,我使用这段代码来显示工具栏和通知栏。
main.getSupportActionBar().show();
main.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
因此,我试图暂时禁用滚动在回收商的观点,而不阻止触摸事件的项目。
另外,要防止状态栏覆盖在工具栏上。
如果有人能帮我,我会非常感激的。
发布于 2015-12-02 23:32:47
为此,应重写recycleview的布局管理器。这样,它只会禁用滚动。您仍然可以处理单击或任何其他触摸事件。例如:-
public class CustomGridLayoutManager extends LinearLayoutManager {
private boolean isScrollEnabled = true;
public CustomGridLayoutManager(Context context) {
super(context);
}
public void setScrollEnabled(boolean flag) {
this.isScrollEnabled = flag;
}
@Override
public boolean canScrollVertically() {
//Similarly you can customize "canScrollHorizontally()" for managing horizontal scroll
return isScrollEnabled && super.canScrollVertically();
}
}
在这里,使用"isScrollEnabled“标志,您可以启用/禁用循环视图的滚动功能。
https://stackoverflow.com/questions/32554203
复制