Android 无法返回视图,但只能在onCreateView方法(片段)中返回recyclerview

Android 无法返回视图,但只能在onCreateView方法(片段)中返回recyclerview,android,Android,我计划在新的提要功能中添加一个浮动按钮。但是,在onCreateView方法期间,它只允许我返回recycleview,而不允许返回仅在片段上返回recycleview的整个视图 这是我在onCreateView方法中的代码 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Infla

我计划在新的提要功能中添加一个浮动按钮。但是,在onCreateView方法期间,它只允许我返回recycleview,而不允许返回仅在片段上返回recycleview的整个视图

这是我在onCreateView方法中的代码

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    posts = new ArrayList<>();

    for(int i=9; i>=0; i--){
        posts.add(new Post("Testing"+i,"For testing","https://picsum.photos/600/300?random?"+i));
    }


    recyclerView = new RecyclerView(getContext());
    LinearLayoutManager lim = new LinearLayoutManager(getContext());
    recyclerView.setLayoutManager(lim);
    pa = new PostAdapter(posts, this);
    recyclerView.setAdapter(pa);
    recyclerView.setItemAnimator(new DefaultItemAnimator());

    return recyclerView;
}
public View onCreateView(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
posts=newarraylist();
对于(int i=9;i>=0;i--){
添加(新帖子(“测试”+i,“用于测试”https://picsum.photos/600/300?random?“+i”);
}
recyclerView=新的recyclerView(getContext());
LinearLayoutManager lim=新的LinearLayoutManager(getContext());
recyclerView.setLayoutManager(lim);
pa=新的邮政适配器(邮政,本);
recyclerView.setAdapter(pa);
setItemAnimator(新的DefaultItemAnimator());
返回回收视图;
}
当我试图返回整个视图时,我就是这样做的

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    posts = new ArrayList<>();

    for(int i=9; i>=0; i--){
        posts.add(new Post("Testing"+i,"For testing","https://picsum.photos/600/300?random?"+i));
    }

    view = inflater.inflate(R.layout.fragment_chat, container, false);
    recyclerView = (RecyclerView) view.findViewById(R.id.strView);
    LinearLayoutManager lim = new LinearLayoutManager(getContext());
    recyclerView.setLayoutManager(lim);
    pa = new PostAdapter(posts, this);
    recyclerView.setAdapter(pa);


    return view;
}
public View onCreateView(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
posts=newarraylist();
对于(int i=9;i>=0;i--){
添加(新帖子(“测试”+i,“用于测试”https://picsum.photos/600/300?random?“+i”);
}
视图=充气机。充气(R.layout.fragment\u chat,container,false);
recyclerView=(recyclerView)view.findViewById(R.id.strView);
LinearLayoutManager lim=新的LinearLayoutManager(getContext());
recyclerView.setLayoutManager(lim);
pa=新的邮政适配器(邮政,本);
recyclerView.setAdapter(pa);
返回视图;
}
这是xml文件

<FrameLayout>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/strView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

<android.support.design.widget.FloatingActionButton
    android:id="@+id/addStrBtn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:backgroundTint="@color/colorWhite"
    android:clickable="true"
    android:cropToPadding="false"
    android:elevation="@dimen/cardview_default_elevation"
    android:src="@drawable/baseline_create_black_18dp"
    app:fabSize="normal"/>

尝试返回视图时使用Logcat

06-20 20:53:57.733 4990-4990/com.example.cheejin.fyp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.cheejin.fyp, PID: 4990
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.cheejin.fyp/com.example.cheejin.fyp.HomePage}: android.view.InflateException: Binary XML file line #20: Binary XML file line #20: Error inflating class android.support.design.widget.FloatingActionButton
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
    at android.app.ActivityThread.-wrap11(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5417)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
 Caused by: android.view.InflateException: Binary XML file line #20: Binary XML file line #20: Error inflating class android.support.design.widget.FloatingActionButton
    at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
    at com.example.cheejin.fyp.ChatFragment.onCreateView(ChatFragment.java:56)
    at android.support.v4.app.Fragment.performCreateView(Fragment.java:2343)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1421)
    at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1752)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1821)
    at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
    at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2595)
    at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2382)
    at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2337)
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2244)
    at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3255)
    at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3205)
    at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195)
    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597)
    at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)
    at android.app.Activity.performStart(Activity.java:6253)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
 Caused by: android.view.InflateException: Binary XML file line #20: Error inflating class android.support.design.widget.FloatingActionButton
    at android.view.LayoutInflater.createView(LayoutInflater.java:645)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at com.example.cheejin.fyp.ChatFragment.onCreateView(ChatFragment.java:56) 
    at android.support.v4.app.Fragment.performCreateView(Fragment.java:2343) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1421) 
    at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1752) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1821) 
    at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797) 
    at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2595) 
    at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2382) 
    at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2337) 
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2244) 
    at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3255) 
    at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3205) 
    at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195) 
    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597) 
    at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177) 
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237) 
    at android.app.Activity.performStart(Activity.java:6253) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance(Native Method)
    at android.view.LayoutInflater.createView(LayoutInflater.java:619)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at com.example.cheejin.fyp.ChatFragment.onCreateView(ChatFragment.java:56) 
    at android.support.v4.app.Fragment.performCreateView(Fragment.java:2343) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1421) 
    at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1752) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1821) 
    at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797) 
    at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2595) 
    at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2382) 
    at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2337) 
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2244) 
    at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3255) 
    at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3205) 
    at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195) 
    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597) 
    at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177) 
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237) 
    at android.app.Activity.performStart(Activity.java:6253) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable()' on a null object reference
    at android.graphics.drawable.LayerDrawable$ChildDrawable.<init>(LayerDrawable.java:1723)
    at android.graphics.drawable.LayerDrawable$LayerState.<init>(LayerDrawable.java:1792)
    at android.graphics.drawable.RippleDrawabl
06-20 20:53:57.733 4990-4990/com.example.cheejin.fyp E/AndroidRuntime:FATAL EXCEPTION:main
流程:com.example.cheejin.fyp,PID:4990
java.lang.RuntimeException:无法启动活动组件信息{com.example.cheejin.fyp/com.example.cheejin.fyp.HomePage}:android.view.InflateException:二进制XML文件行#20:二进制XML文件行#20:膨胀类android.support.design.widget.FloatingActionButton时出错
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
位于android.app.ActivityThread.-wrap11(ActivityThread.java)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:148)
位于android.app.ActivityThread.main(ActivityThread.java:5417)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:726)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
原因:android.view.InflateException:二进制XML文件行#20:二进制XML文件行#20:错误膨胀类android.support.design.widget.FloatingActionButton
在android.view.LayoutInflater.inflate(LayoutInflater.java:539)
在android.view.LayoutInflater.充气(LayoutInflater.java:423)
位于com.example.cheejin.fyp.ChatFragment.onCreateView(ChatFragment.java:56)
位于android.support.v4.app.Fragment.performCreateView(Fragment.java:2343)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1421)
位于android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1752)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1821)
位于android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
位于android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2595)
在android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2382)
在android.support.v4.app.FragmentManagerImpl.removedandtoperationsandexecute(FragmentManager.java:2337)
位于android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2244)
位于android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3255)
位于android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3205)
位于android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195)
位于android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597)
位于android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
位于android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)
位于android.app.Activity.performStart(Activity.java:6253)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
位于android.app.ActivityThread.-wrap11(ActivityThread.java)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:148)
位于android.app.ActivityThread.main(ActivityThread.java:5417)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:726)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
导致原因:android.view.InflateException:二进制XML文件行#20:对类android.support.design.widget.FloatingActionButton进行膨胀时出错
位于android.view.LayoutInflater.createView(LayoutInflater.java:645)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
位于android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
在android.view.Lay
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                     Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.my_layout, parent, false);

    RecyclerView postList = rootView.findViewById(R.id.strView);

    // initialize the recyclerview here like you have above with the layoutmanager and adapter

    return rootView;
}