【发布时间】:2017-09-15 17:32:13
【问题描述】:
这是我在第一个片段的 onCreateView 中运行的 AsyncTask
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));
}
}
在第三个片段中,我使用了不需要获取的虚拟数据
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
问题是当我从第一个片段滑动到第三个片段时,回收视图会重新绘制自己。当我转到仅包含文本视图的第二个片段时,这不会发生 有人可以解释为什么会这样吗?
【问题讨论】:
-
第二个片段在做什么??
标签: android android-recyclerview android-viewpager