android.widget.RelativeLayout无法强制转换为android.support.v7.widget.RecyclerView
我的NavigationDrawer布局有问题,出现错误:android.widget.RelativeLayout无法强制转换为android.support.v7.widget.RecyclerView,android,android-layout,navigation-drawer,android-recyclerview,Android,Android Layout,Navigation Drawer,Android Recyclerview,我的NavigationDrawer布局有问题,出现错误: android.widget.RelativeLayout cannot be cast to android.support.v7.widget.RecyclerView 这是我的onCreateView: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
android.widget.RelativeLayout cannot be cast to android.support.v7.widget.RecyclerView
这是我的onCreateView:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mRecyclerView = (RecyclerView) inflater.inflate(R.layout.fragment_drawer, container, false);
mRecyclerView.setClipToPadding(false);
mAdapter = new NavigationDrawerAdapter(getActivity(), new NavigationDrawerAdapter.ClickListener() {
@Override
public void onClick(int index) {
selectItem(index);
}
@Override
public boolean onLongClick(final int index) {
Pins.Item item = mAdapter.getItem(index);
Utils.showConfirmDialog(getActivity(), R.string.remove_shortcut,
R.string.confirm_remove_shortcut, item.getDisplay(getActivity()), new CustomDialog.SimpleClickListener() {
@Override
public void onPositive(int which, View view) {
Pins.remove(getActivity(), index);
mAdapter.reload(getActivity());
}
}
);
return false;
}
});
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mAdapter.setCheckedPos(mCurrentSelectedPosition);
return mRecyclerView;
}
这是fragment\u抽屉
布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/cover_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/banner" />
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/cover_bg"
android:background="?drawer_background"
android:scrollbars="vertical" />
</RelativeLayout>
我不知道它怎么能不投下相对论。。与LinearLayout相同的崩溃
mRecyclerView = (RecyclerView) inflater.inflate(R.layout.fragment_drawer, container, false);
您的fragment\u抽屉
布局没有RecyclerView
作为其根元素。它的根元素是RelativeLayout
。因此,inflate()
将返回RelativeLayout
,其内部有RecyclerView
将代码更改为:
View drawer = inflater.inflate(R.layout.fragment_drawer, container, false);
mRecyclerView = (RecyclerView) drawer.findViewById(android.R.id.list);
在这里,我们通过在膨胀的布局中找到
@android:id/list
小部件来获得RecyclerView
。您正在将布局(相对位置)转换为位于mRecyclerView=(RecyclerView)充气器的RecyclerView。充气(R.layout.fragment\u drawer,container,false);你不能做你不能做的事是的,但我怎么做?我需要在我的回收视图上放一张图片。如果我将图像放在我的item_drawer.xml中(这与我放置recycleview的TextView项目的布局相同),它将为适配器的每个项目显示图像,而不是一次。所以我有(Banner-textview,Banner-textview,Banner-textview)而没有(Banner,textview,textview,textview)明白我的意思吗?