我有一个回收视图,我有媒体播放器。我想在点击按钮时全屏显示。我尝试了两种方法来实现它。
创建新意图并将视频详细信息传递给新意图(当前位置和网址)。但是,这会导致Media Player状态机出现很多问题。
获取屏幕尺寸并将视图展开为屏幕尺寸。这个问题是recyclerview仍然是可滚动的..我确实创建了一个触摸监听器来拦截触摸事件,但是也禁用了回收项上的触摸事件。
除了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);
因此,我试图暂时禁用回收器视图上的滚动,而不会阻止对项目的触摸事件。
还要尝试阻止状态栏覆盖工具栏。
如果有人能帮助我,我会非常感激。
答案 0 :(得分:1)
您应该覆盖recycleview的layoutmanager。这样它只会禁用滚动。您仍然可以处理点击或任何其他触摸事件。例如: -
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”标志,您可以暂时启用/禁用回收视图的滚动功能。