Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Recyclerview中的媒体播放器全屏_Android_Scroll_Android Mediaplayer_Android Recyclerview_Android Fullscreen - Fatal编程技术网

Android Recyclerview中的媒体播放器全屏

Android Recyclerview中的媒体播放器全屏,android,scroll,android-mediaplayer,android-recyclerview,android-fullscreen,Android,Scroll,Android Mediaplayer,Android Recyclerview,Android Fullscreen,我有一个回收视图,我有媒体播放器。我想让他们在一个按钮点击全屏。我尝试了两种方法来实现这一点 创建新意图并将视频详细信息传递给新意图(当前位置和url)。然而,这导致了媒体播放器状态机的许多问题 获取屏幕尺寸并将视图扩展到屏幕大小。问题是recyclerview仍然是可滚动的。。我确实创建了一个触摸监听器来拦截触摸事件,但是也禁用了回收项目上的触摸事件 除了a之外,第二个选项比第一个好一点。循环器视图和b的滚动。隐藏并显示状态栏,如同在与工具栏一起隐藏后再次显示状态栏一样,状态栏覆盖在工具栏上

我有一个回收视图,我有媒体播放器。我想让他们在一个按钮点击全屏。我尝试了两种方法来实现这一点

  • 创建新意图并将视频详细信息传递给新意图(当前位置和url)。然而,这导致了媒体播放器状态机的许多问题

  • 获取屏幕尺寸并将视图扩展到屏幕大小。问题是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);
    
    因此,我试图暂时禁用“回收器”视图上的滚动,而不阻止对项目的触摸事件

    还可以尝试防止状态栏覆盖在工具栏上


    如果有人能帮助我,我将不胜感激。

    为此,您应该覆盖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();
    }
    }
    
    在这里,使用“IsCrollenabled”标志,您可以临时启用/禁用循环视图的滚动功能