次のように、RecyclerViewをフラグメントで初期化しました。私はRecyclerViewを作成しました。画面の向きが変わると、重複した項目が最上部に追加されます。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view= inflater.inflate(R.layout.fragment_home_page, container, false);
initialiseView(view);
recyclerView.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(new HomepageRecyclerViewAdapter(getActivity()));
return view;
}
private void initialiseView(View view){
recyclerView=(RecyclerView)view.findViewById(R.id.recyclerView);
}
次に、次のようにRecyclerViewアダプタを作成しました。私は原因を把握することはできませんtop.Iでアイテムが重複しているされてランドスケープモードにポートレートモードに画面を撮るとき
public class HomepageRecyclerViewAdapter extends RecyclerView.Adapter<HomepageRecyclerViewAdapter.ViewHolders> {
private Context context;
public HomepageRecyclerViewAdapter(Context context) {
this.context = context;
}
@Override
public HomepageRecyclerViewAdapter.ViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.
from(parent.getContext()).
inflate(R.layout.homepage_recycler_view_content, parent, false);
return new ViewHolders(itemView);
}
@Override
public void onBindViewHolder(final HomepageRecyclerViewAdapter.ViewHolders holder, int position) {
prepareHorizontalScrollView(holder.videoOuterParent);
}
@Override
public int getItemCount() {
return 50;
}
static class ViewHolders extends RecyclerView.ViewHolder {
protected LinearLayout parentContent;
protected ImageView videoImage;
protected RelativeLayout videoInnerParent;
protected HorizontalScrollView horizontalScrollView;
protected LinearLayout videoOuterParent;
public ViewHolders(View view) {
super(view);
parentContent = (LinearLayout) view.findViewById(R.id.parent_content);
videoImage = (ImageView) view.findViewById(R.id.video_image);
videoInnerParent = (RelativeLayout) view.findViewById(R.id.video_inner_parent);
videoOuterParent = (LinearLayout) view.findViewById(R.id.video_outer_parent);
horizontalScrollView = (HorizontalScrollView) view.findViewById(R.id.horizontal_scroll_view);
videoInnerParent.getViewTreeObserver()
.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
}
});
}
}
private void prepareHorizontalScrollView(LinearLayout videoOuterParent) {
videoOuterParent.removeAllViews();
for (int i = 0; i < 10; i++) {
RelativeLayout relativeLayout = new RelativeLayout(context);
relativeLayout.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
final ImageView imageView = new ImageView(context);
imageView.setAdjustViewBounds(true);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setImageResource(R.drawable.gire_khursani);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT);
layoutParams.setMargins(10, 10,0, 10);
imageView.setLayoutParams(layoutParams);
relativeLayout.addView(imageView);
videoOuterParent.addView(relativeLayout);
}
}
}
は、今私が直面している問題があります。ここで
は、画面のリンクはそれを表示するだけの静的な値、あなたがどんなList
値を持っていないようだ https://drive.google.com/file/d/0B2oBJsY3oyCtUTZsS1RmdC1RclU/view?usp=sharing
はアンドロイド**を追加してみてください。configChanges =「オリエンテーション|画面サイズ」 – itsa04g9
が、なぜ50としてカウントGETアイテムを返却しているあなたの活動の**は、マニフェスト –