UAMP MediaBrowser 方向

Posted

技术标签:

【中文标题】UAMP MediaBrowser 方向【英文标题】:UAMP MediaBrowser orientation 【发布时间】:2018-06-11 12:36:58 【问题描述】:

我正在尝试uamp 示例,每当方向更改时,MediaBrowserFragment recyclerview 状态都会丢失(不保持其滚动位置)。

我的问题是如何在 uamp 示例中保持滚动位置。

我知道我可以保存滚动位置并在以后恢复它,但由于 recyclerView 本身保持滚动状态,我不希望这种黑客攻击。

我尝试推送这个简单的片段而不是 MediaBrowserFragment 并保持其滚动

public class TestFragment extends Fragment 

    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
        View mRootView = inflater.inflate(R.layout.fragment_test, container, false);
        RecyclerView recyclerView = (RecyclerView) mRootView.findViewById(R.id.recyclerView);
        recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
        recyclerView.setAdapter(new RecAdapter());
        return mRootView;
    


    private class RecAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> 

        @NonNull
        @Override
        public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) 
            View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_text, null);
            return new ItemViewHolder(itemView);
        

        @Override
        public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) 
            ((ItemViewHolder) holder).title.setText(""+ position);
        

        @Override
        public int getItemCount() 
            return 200;
        
    

    private class ItemViewHolder extends RecyclerView.ViewHolder 
        TextView title;

        ItemViewHolder(View itemLayoutView) 
            super(itemLayoutView);
            title = (TextView) itemLayoutView.findViewById(R.id.title);
        
    

更新

我用 uamp 提出了这个问题

https://github.com/googlesamples/android-UniversalMusicPlayer/issues/217

【问题讨论】:

【参考方案1】:

您可以在清单文件中添加 configChanges,如下所示:

 <activity android:name=".YourActivity"
           android:configChanges="orientation|screenSize"/>

【讨论】:

根据developer.android.com/guide/topics/resources/…,这只是一个糟糕的黑客攻击,应该避免,这意味着更多的工作和更多的黑客攻击

以上是关于UAMP MediaBrowser 方向的主要内容,如果未能解决你的问题,请参考以下文章

为啥连接到 mediaBrowser 时没有调用 connectionCallback.onConnected()?

致命异常:MediaBrowser 中的 java.lang.IllegalStateException

Android MediaBrowser 各组件使用概览

Android MediaBrowser 各组件使用概览

Android MediaBrowser 各组件使用概览

Android MediaBrowser 各组件使用概览