Recyclerview中的媒体播放器全屏

时间:2015-09-13 20:23:49

标签: android scroll android-mediaplayer android-recyclerview android-fullscreen

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

  1. 创建新意图并将视频详细信息传递给新意图(当前位置和网址)。但是,这会导致Media Player状态机出现很多问题。

  2. 获取屏幕尺寸并将视图展开为屏幕尺寸。这个问题是recyclerview仍然是可滚动的..我确实创建了一个触摸监听器来拦截触摸事件,但是也禁用了回收项上的触摸事件。

  3. 除了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);
    

    因此,我试图暂时禁用回收器视图上的滚动,而不会阻止对项目的触摸事件。

    还要尝试阻止状态栏覆盖工具栏。

    如果有人能帮助我,我会非常感激。

1 个答案:

答案 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”标志,您可以暂时启用/禁用回收视图的滚动功能。