好吧,我能够通过扩展一个片段来实现所需的功能,该片段显示一个带有适配器的网格视图,该适配器位于一个扩展基本适配器的适配器类的 getView 方法中。但由于翻转无法翻转具有网格视图的该片段的下一个项目,我需要采用不同的技术。即我必须创建硬编码屏幕并为适配器定义硬编码计数,我用来将其设置为翻转视图控制器和内部获取此适配器的视图方法,具体取决于我加载不同 xml 并相应地实例化视图的位置。我知道这是一种非常糟糕的技术并且详尽无遗,但目前这是我找到的唯一解决方案。
这是我的代码
FragmentLoaderAdapterFragment.java
public class FragmentLoaderAdapterFragment extends Fragment {
private FlipViewController flipView;
public FragmentLoaderAdapterFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
flipView = new FlipViewController(inflater.getContext());
flipView.setAdapter(new SingleFragmentDisplayAdapter());
return flipView;
}
@Override
public void onResume() {
super.onResume();
flipView.onResume();
}
@Override
public void onPause() {
super.onPause();
flipView.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
flipView = null;
}
private class SingleFragmentDisplayAdapter extends BaseAdapter {
public SingleFragmentDisplayAdapter() {
}
@Override
public int getCount() {
return 2;
}
@Override
public Object getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if (i==0){
view = View.inflate(getActivity(),R.layout.fragment_consumer_products,null);
LinearLayout cableLinearLayout = (LinearLayout) view.findViewById(R.id.cablesLayout);
cableLinearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
}
});
return view;
} if (i==1){
view = View.inflate(getActivity(),R.layout.fragment_consumer_products2,null);
LinearLayout cableLinearLayout = (LinearLayout) view.findViewById(R.id.cablesLayout);
cableLinearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
}
});
return view;
} else {
return null;
}
}
}
}