-1

小さな問題があります。RecyclerView内の断片からTabBar

リサイクルビューを一部のカードで読み込もうとしました。

リサイクラビューが表示されていないとフラグメントが機能し、カードが表示されますが、recyclerViewを追加してからエラーが発生しています。

致命的な例外:メイン プロセス:com.example.pierre.all、PID:1729 android.view.InflateException:バイナリXMLファイルのライン#24:RecyclerView はandroid.view.LayoutInflaterで何のLayoutManager を持っていません.inflate android.view.LayoutInflater.inflateで(LayoutInflater.java:539) (LayoutInflater.java:423) でcom.example.pierre.all.Categories $ PlaceholderFragment.onCreateView(Categories.java:131) で android.support.v4.app.Fragment.perfo rmCreateView(Fragment.java:1974) でandroid.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)で でandroid.support.v4.app.BackStackRecord.run(BackStackRecord.java:742) android.support.v4でandroid.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617) で.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570) at android.support.v4.app.Frag (ViewPager.java:1177) at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:608)のメンテナンス。 ) でandroid.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:570) でandroid.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:551) android.supportました。 design.widget.TabLayout $ ViewPagerOnTabSelectedListener.onTabSelected(TabLayout.java:2008) at android.support.design.widget.TabLayout.selectTab(TabLayout.java:2008) out.java:1025) でandroid.support.design.widget.TabLayout.selectTab(TabLayout.java:995) android.support.design.widget.TabLayout $ Tab.select(TabLayout.java:1272)で android.os.Handler.handleCallbackでandroid.view.View $ PerformClick.run(View.java:21147) で android.support.design.widget.TabLayout $ TabView.performClick(TabLayout.java:1377) で (Handler.java:739) (andler.os.Handler.dispatchMessage(Handler.java:95)) (android.os.Looper.loop(Looper.java:148) android.app.ActivityThread.ma java.lang.reflect.Method.invoke(ネイティブメソッド)で(ActivityThread.java:5417) で でcom.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) コムで。 android.internal.os.ZygoteInit.main(ZygoteInit。Javaの:616)

これは私のfragment_categories_favorites.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="layout.Categories_favorites"> 

<android.support.v7.widget.RecyclerView 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:id="@+id/list" 
android:scrollbars="vertical"> 

    <android.support.v7.widget.CardView 
     xmlns:card_view="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/card_view" 
     android:layout_width="120dp" 
     android:layout_height="120dp" 
     card_view:cardCornerRadius="4dp" 
     android:background="@drawable/background"> 

     <TextView 
      android:id="@+id/info_text" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="SHOP" 
      android:textSize="20sp" 
      android:gravity="center" /> 

     <TextView 
      android:id="@+id/info_text2" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="25 items" 
      android:layout_marginTop="40dp" 
      android:gravity="center" 
      android:textSize="12sp" 
      /> 
    </android.support.v7.widget.CardView> 
    </android.support.v7.widget.RecyclerView> 
    </FrameLayout> 

マイCategories_favorites.java

public class Categories_favorites extends Fragment { 

    private static final String TAG = "RecyclerViewFragment"; 

    public Categories_favorites() { 
     // Required empty public constructor 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_categories_favorites, container, false); 
     rootView.setTag(TAG); 

     RecyclerView rv = (RecyclerView) rootView.findViewById(R.id.list); 
     LinearLayoutManager manager = new LinearLayoutManager(getActivity()); 
     manager.setOrientation(LinearLayoutManager.VERTICAL); 
     rv.setLayoutManager(manager); 
     //I tried this before instead of the 3 lignes before. 
     //rv.setLayoutManager(new LinearLayoutManager(getActivity())); 
     rv.setAdapter(new MyAdapter()); 
     return rootView; 

    } 
} 

そして、これは私が持っている何MyAdaptater.java

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { 

    private final List<Pair<String, String>> characters = Arrays.asList(
      Pair.create("Lyra Belacqua", "Brave, curious, and crafty, she has been prophesied by the witches to help the balance of life"), 
      Pair.create("Pantalaimon", "Lyra's daemon, nicknamed Pan."), 
      Pair.create("Roger Parslow", "Lyra's friends"), 
      Pair.create("Lord Asriel", "Lyra's uncle"), 
      Pair.create("Marisa Coulter", "Intelligent and beautiful, but extremely ruthless and callous."), 
      Pair.create("Iorek Byrnison", "Armoured bear, Rightful king of the panserbjørne. Reduced to a slave of the human village Trollesund."), 
      Pair.create("Serafina Pekkala", "Witch who closely follows Lyra on her travels."), 
      Pair.create("Lee Scoresby", "Texan aeronaut who transports Lyra in his balloon. Good friend with Iorek Byrnison."), 
      Pair.create("Ma Costa", "Gyptian woman whose son, Billy Costa is abducted by the \"Gobblers\"."), 
      Pair.create("John Faa", "The King of all gyptian people.") 
    ); 

    @Override 
    public int getItemCount() { 
     return characters.size(); 
    } 

    @Override 
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     LayoutInflater inflater = LayoutInflater.from(parent.getContext()); 
     View view = inflater.inflate(R.layout.fragment_categories_favorites, parent, false); 
     return new MyViewHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(MyViewHolder holder, int position) { 
     Pair<String, String> pair = characters.get(position); 
     holder.display(pair); 
    } 

    public class MyViewHolder extends RecyclerView.ViewHolder { 

     private final TextView name; 
     private final TextView description; 

     private Pair<String, String> currentPair; 

     public MyViewHolder(final View itemView) { 
      super(itemView); 

      name = ((TextView) itemView.findViewById(R.id.info_text)); 
      description = ((TextView) itemView.findViewById(R.id.info_text2)); 

      itemView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        new AlertDialog.Builder(itemView.getContext()) 
          .setTitle(currentPair.first) 
          .setMessage(currentPair.second) 
          .show(); 
       } 
      }); 
     } 

     public void display(Pair<String, String> pair) { 
      currentPair = pair; 
      name.setText(pair.first); 
      description.setText(pair.second); 
     } 
    } 

} 

です間違っている?事前に

おかげ (あまりにも私の英語のため申し訳ありません)

答えて

1
あなたは... fragment_categories_favorites.xmlのリサイクルビューに存在するサブ景色を眺めることができ、あなたの行項目の別々のXMLを持っており、あなたのアダプタからそれを膨らませることができない

実際の作業例はこちらhttp://www.androidhive.info/2016/01/android-working-with-recycler-view/

+0

ありがとうございます – Pierre