PDA

View Full Version : سوال فنی در مورد tablayout و فرگمنت



sahar_mrd69
سه شنبه 19 اردیبهشت 1396, 09:02 صبح
دوستان خسته نباشین .یه مشکل اساسی دارم خیلی ساده و مختصر توضیح میدم اگ راهنمایی کنید ممنون میشم.ببینید من یه تب پیج دارم ک تعداد گزینه هاش داینامیک هست .و تعداد فرگمنت های ویوپیجر هم داینامیک هست به اندازه سایز یک ارایه که از سمت سرور دریافت میشه.به هر کدوم از این ایتم های تب پیج یک ایدی اختصاص دادم ک میخوام با عوض شدن این تب ها این ایدی مجدد سمت سرور بره و اطلاعات مربوطه دریافت شود و در فرگمنت ProductCardFragmment نمایش داده شود.اما مشکلی که دارم این هست که با تعویض تب پیج تا زمانی که ایدی ارسال میشه و اطلاعات دریافت میشه اون فرگمنت داخلی (ProductCardFragmment )دیگ بارگذاری شده و اطلاعات دریافتی دیگ نمایش داده نمیشود.این وسط نمیدونم چطور باید هندل کنم ک بعد از تعویض تب پیج و دریافت اطلاعات ، فرگمنت مربوط به ویوپیجر مقداردهی شود یا اینکه دوباره رفرش شود!!!!کاری که همه برنامه ها مثل بازار و دیجی کالا و ....

public class TabLayouteCategoryFragment extends Fragment implements View.OnClickListener{
public static ArrayList<Category> res = new ArrayList<>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.tab, container, false);
setupViewPager(viewPager);

tabLayout = (TabLayout) rootView.findViewById(R.id.tab_layout);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getFragmentManager());
long iddd = adapter.getItemId(tab.getPosition());
id = res.get((int) iddd).getId();
positionToGetFiltering = tab.getPosition();

ActionProduct actionProduct = new ActionProduct(getActivity(), String.valueOf(id)); //resProduct از اینجا مقداردهی میشود
actionProduct.getResult();

}
return rootView;
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getFragmentManager());
for (int i = 0; i < res.size(); i++) {
adapter.addFrag(new ProductCardFragmment(), res.get(i).getName(), res.get(i).getId());
}
viewPager.setAdapter(adapter);
}
}
////////////
ProductCardFragmment extends Fragment {
public static ArrayList<Product> resProduct=new ArrayList<>() ;
public ListGoodsAdapter adapter;
RecyclerView recyclerView;
public static ArrayList<Product> res=new ArrayList<>() ;
public ListGoodsAdapter adapter;
RecyclerView recyclerView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_category, container, false);
recyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view_card);
adapter= new ListGoodsAdapter(getContext(), resProduct);
recyclerView.setAdapter(adapter);
return rootView;
}
}