だからこれは私がRecyclerviewは
をフェッチする必要がない私はダミーデータを使用する第三の断片上の最初のフラグメントclass GetDatas extends AsyncTask<Void, Void, Void>
{
Collection<ProfileDataModel> enums = Collections.EMPTY_LIST;
@Override
protected Void doInBackground(Void... voids) {
try{
client = new OkHttpClient();
String response = OkHttpService.GET(client, webUrl);
Gson gson = new Gson();
Type type = new TypeToken<Collection<ProfileDataModel>>(){}.getType();
enums = gson.fromJson(response, type);
profileDataModels = enums.toArray(new ProfileDataModel[enums.size()]);
listAdapter = new ListAdapter(Arrays.asList(profileDataModels), getContext());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
profileDataModels = enums.toArray(new ProfileDataModel[enums.size()]);
listAdapter = new ListAdapter(Arrays.asList(profileDataModels), getContext());
recyclerView.setAdapter(listAdapter);
recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 3));
}
}
にonCreateViewで実行AsyncTaskある自体を再描画します
public class MainFragment extends Fragment {
RecyclerView recyclerView;
LinearLayout linearLayout;
@Override
public View onCreateView(
LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_video_list_pages, container, false);
recyclerView = (RecyclerView) rootView.findViewById(R.id.video_list_recycler_view);
recyclerView.setHasFixedSize(true);
linearLayout = (LinearLayout) rootView.findViewById(R.id.video_list_adapter_rootframe);
ListAdapter adapter = new ListAdapter(
new String[] {
"mm","aa","sss","mm","aa","sss","mm","aa","sss","mm","aa","sss","mm","aa","sss"
}
);
recyclerView.setAdapter(adapter);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(linearLayoutManager);
return rootView;
}
}
多分命名に混乱あなたのいくつかが、私はそのように維持したい、 My Directory names
問題は、最初のフラグメントから3番目のフラグメントにスワイプすると、リサイクルビュー自体が再描画されるということです。これは、私が2番目のフラグメントに行くときに起こることはありません。これは、テキストビューだけを含んでいます。 なぜこのようなことが起こるのか説明できますか?あなたはあなたがあなたのActivityクラスでそれを使用し、destroyItem
をオーバーライドして、空白を維持する必要があり、この機能を停止する第三フラグメントに行くときに起こっていただきました!OK
をクラッシュする可能性があります実装しようとしないでください? –