안에 viewPager가 있습니다. 조각이 여러 개 있습니다.조각에서 viewPager의 단편을 제거하십시오.
providerViewPager = (ViewPager) findViewById(R.id.viewPager);
userRequest.add(1);
fragmentPagerAdapter = new FragmentStatePagerAdapter(HomeActivity.this.getSupportFragmentManager()) {
@Override
public int getCount() {
return userRequest.size();
}
@Override
public Fragment getItem(int position) {
return MyFragment.newInstance(position, userRequest.get(position));
}
};
providerViewPager.setAdapter(fragmentPagerAdapter);
userRequest는 int의 arrayList이며이 목록의 각 항목에 대해 MyFragment를 만듭니다.
MyFragment에는 각 페이지의 표시보기가 있습니다.
view.findViewById(R.id.mybutton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ViewPager viewPager = ((HomeActivity)getActivity()).getViewPager();
FragmentStatePagerAdapter adapter = ((HomeActivity)getActivity()).getAdapter();
ArrayList<Integer> ints = ((HomeActivity)getActivity()).getRequest();
viewPager.removeView(view);
ints.remove(getArguments().getInt("position"));
adapter.notifyDataSetChanged();
}
});
이것은 내 조각 안에있는 onClickListener입니다. 클릭 할 때이 현재 조각을 제거하고 싶습니다.
내가 볼 수 있듯이, 내 Activity에서 viewPager, 어댑터 및 arrayList를 얻었으며,이 조각을 제거하는 몇 가지 방법을 시도합니다.이 작업은하지만 중간에 요소를 제거하면 몇 가지 버그가 있습니다. 보기 호출기의 끝 부분에 도달 할 수 없습니다. 나는 그들이 조각을 제거하는 데 매우 간단하다는 것을 알고 싶다.
왜 뷰 페이저에서보기를 제거 하시겠습니까? – Boukharist
프래그먼트를 삭제하기 전에 뷰 호출기의 위치를 설정하려고 시도하십시오. – Boukharist
ViewPager가 자체 컨텐츠를 담당합니다. 무언가를 변경하려면 어댑터의 데이터 또는 현재 위치를 변경하십시오. – Eselfar