小さな問題があります。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);
}
}
}
です間違っている?事前に
おかげ (あまりにも私の英語のため申し訳ありません)
ありがとうございます – Pierre