coco 1,746 ارسال شده در 25 تیر، ۱۳۹۵ اشتراک گذاری ارسال شده در 25 تیر، ۱۳۹۵ سلام دوستان من در برنامم اومدم ار باتم نویگیشن استفاده میکنم بعد بالاش هم یه فریم لی اوت گذاشتم و میام تو رویداد آن تب سلکتدفرگمنتی که فریم لی اوت نشون میده رو تغییر میدم حالا من تو فرگمنت اول یه ریسایکلر دارم که اطلاعات رو از اینترنت میگیره و نشون میده و تو اون یکی یه ادیت تکست برای تست گذاشتم وقتی سوییچ میکنم بینشون فرگمنتی که ادیت تکست داره ، متنه ادیت تکستش همون میمونه اما فرگمنتی که ریسایکلر داره (1 آیتم داره که تسته) بهش 1 دونه از همون آیتم اضافه میشه اینم کدا : MainActivity: HBottomNavigation bottomNavigation = (AHBottomNavigation) findViewById(R.id.bottom_navigation); AHBottomNavigationItem item_all = new AHBottomNavigationItem("خانه", R.drawable.home, R.color.colorAccent); AHBottomNavigationItem item_search = new AHBottomNavigationItem("جستجو", R.drawable.magnify, R.color.colorAccent); AHBottomNavigationItem item_add = new AHBottomNavigationItem("ارسال", R.drawable.plus_circle, R.color.colorAccent); AHBottomNavigationItem item_profile = new AHBottomNavigationItem("پروفایل", R.drawable.account, R.color.colorAccent); bottomNavigation.addItem(item_all); bottomNavigation.addItem(item_search); bottomNavigation.addItem(item_add); bottomNavigation.addItem(item_profile); bottomNavigation.setDefaultBackgroundColor(Color.parseColor("#689f38")); bottomNavigation.setAccentColor(Color.parseColor("#FFFFFF")); bottomNavigation.setInactiveColor(Color.parseColor("#DDDDDD")); bottomNavigation.setForceTitlesDisplay(true); frameLayout = (FrameLayout) findViewById(R.id.fLayout); manager = getSupportFragmentManager(); transaction = manager.beginTransaction(); transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); all = new All(getApplicationContext()); newPost = new NewPost(getApplicationContext()); transaction.add(R.id.fLayout , all); transaction.commit(); bottomNavigation.setOnTabSelectedListener(new AHBottomNavigation.OnTabSelectedListener() { @Override public boolean onTabSelected(int position, boolean wasSelected) { switch (position){ case 0: selected = all; break; case 1: break; case 2: selected = newPost; break; case 3: break; } if (!wasSelected){ switch (position){ case 0: transaction = manager.beginTransaction(); transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); transaction.replace(R.id.fLayout,all); transaction.commit(); break; case 1: break; case 2: transaction = manager.beginTransaction(); transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); transaction.replace(R.id.fLayout,newPost); transaction.commit(); break; case 3: break; } } return true; } }); All Fragment: RecyclerView rv; OkHttpClient client = new OkHttpClient(); JSONArray jsonArray; List<Pic> PicList = new ArrayList<Pic>(); public static int Offset; EndlessRecyclerOnScrollListener erosl; RecyclerAdapter ra; private Context mContext; private ViewGroup mContainer; public All(Context context) { super(); this.mContext = context; } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_all,container,false); mContainer = container; try { jsonArray = new JSONArray(""); } catch (JSONException e) { e.printStackTrace(); } rv = (RecyclerView) view.findViewById(R.id.mainRV); ra = new RecyclerAdapter(PicList,mContext); LinearLayoutManager llm = new LinearLayoutManager(mContext); rv.setLayoutManager(llm); rv.setHasFixedSize(true); erosl = new EndlessRecyclerOnScrollListener(llm) { @Override public void onLoadMore(int current_page, int totalItemCount) { Offset = totalItemCount; try { getList(); Log.e("tot",""+totalItemCount); } catch (Exception e) { e.printStackTrace(); } } }; Offset = 0; try { getList(); Log.e("GET","LIST"); } catch (Exception e) { e.printStackTrace(); } rv.setOnScrollListener(erosl); return view; } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); } public void getList() throws Exception{ final Request request = new Request.Builder() .url("http://link?Offset="+Offset) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { Handler mainHandler = new Handler(mContext.getMainLooper()); Runnable myRunnable = new Runnable() { @Override public void run() { rv.setVisibility(View.GONE); Offset = 0; } }; mainHandler.post(myRunnable); e.printStackTrace(); } @Override public void onResponse(Response response) throws IOException { String j = response.body().string(); Log.e("J===",j); try { jsonArray = new JSONArray(j); } catch (JSONException e) { e.printStackTrace(); } if (j.equals("0 results")) { if (Offset == 0) { Handler mainHandler = new Handler(mContext.getMainLooper()); Runnable myRunnable = new Runnable() { @Override public void run() { rv.setVisibility(View.GONE); Toast.makeText(mContext, "0", Toast.LENGTH_SHORT).show(); } }; mainHandler.post(myRunnable); } }else if(j.equals("[]")){ Handler mainHandler = new Handler(mContext.getMainLooper()); Runnable myRunnable = new Runnable() { @Override public void run() { Toast.makeText(mContext, "0", Toast.LENGTH_SHORT).show(); } }; mainHandler.post(myRunnable); }else{ try { if (jsonArray.length() > 0) { for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); Pic pic = new Pic(); if (!jsonObject.isNull("Caption")) { pic.Caption = jsonObject.getString("Caption"); } if (!jsonObject.isNull("Date")) { pic.Date = jsonObject.getString("Date"); } if (!jsonObject.isNull("PicLink")) { pic.PicLink = jsonObject.getString("PicLink"); } if (!jsonObject.isNull("Sender_Username")) { pic.Sender_Username = jsonObject.getString("Sender_Username"); } if (!jsonObject.isNull("Likes")) { pic.Likes = jsonObject.getString("Likes"); } if (!jsonObject.isNull("id")) { pic.ID = jsonObject.getString("id"); } PicList.add((i+Offset), pic); Log.e("Add","ed"); } Handler mainHandler = new Handler(mContext.getMainLooper()); Runnable myRunnable = new Runnable() { @Override public void run() { if (Offset == 0){ rv.setAdapter(ra); ra.notifyDataSetChanged(); }else{ ra.notifyItemInserted(Offset+1); rv.scrollToPosition(Offset); } rv.setVisibility(View.VISIBLE); } }; mainHandler.post(myRunnable); } } catch (JSONException e) { e.printStackTrace(); Handler mainHandler = new Handler(mContext.getMainLooper()); Runnable myRunnable = new Runnable() { @Override public void run() { rv.setVisibility(View.GONE); } }; mainHandler.post(myRunnable); } } } }); } لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
coco 1,746 ارسال شده در 29 تیر، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 29 تیر، ۱۳۹۵ دوستان مشکل حل شد من همش داشتم از متوده Replace استفاده میکردم، در حالی که باید همه فرگمنتا رو add میکردم و با hide و show تغییر میدادم نمایششونو از همینجا از درخواست عاجزانه دارم قسمت 3 آموزش کار با فرگمنت ها رو قرار بدن لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Gray Mind 913 ارسال شده در 25 تیر، ۱۳۹۵ اشتراک گذاری ارسال شده در 25 تیر، ۱۳۹۵ دقیقا نفهمیدم چی گفتی ولی اگه میخوای وقتی بین فرگمنت ها سوییچ کنی فرگمنت مقادیرش آپدیت بشه از این متد استفاده کن توی اون فرگمنت public void setUserVisibleHint(boolean isVisibleToUser) { if (isVisibleToUser){ //دستورات } } لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
coco 1,746 ارسال شده در 25 تیر، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 25 تیر، ۱۳۹۵ دقیقا نفهمیدم چی گفتی ولی اگه میخوای وقتی بین فرگمنت ها سوییچ کنی فرگمنت مقادیرش آپدیت بشه از این متد استفاده کن توی اون فرگمنت public void setUserVisibleHint(boolean isVisibleToUser) { if (isVisibleToUser){ //دستورات } } سلام عزیز خب الان من میخوام آپدیت نشه میخوام همونایی که قبله سوییچ بوده بمونه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Gray Mind 913 ارسال شده در 25 تیر، ۱۳۹۵ اشتراک گذاری ارسال شده در 25 تیر، ۱۳۹۵ خوب بریزشون توی یه متغیر بعد تو حالت بالا که گفتم دوباره بریزشون توی همون ادیت تکست. نمیشه اینطوری؟ احتمالا تو حالت onpause باید بریزی تو متغیر و نو حالت بالا پس بگیری لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
coco 1,746 ارسال شده در 25 تیر، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 25 تیر، ۱۳۹۵ خوب بریزشون توی یه متغیر بعد تو حالت بالا که گفتم دوباره بریزشون توی همون ادیت تکست. نمیشه اینطوری؟ احتمالا تو حالت onpause باید بریزی تو متغیر و نو حالت بالا پس بگیری ممنون عزیز تست میکنم همینجا خبر میدم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
coco 1,746 ارسال شده در 29 تیر، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 29 تیر، ۱۳۹۵ دوستان مشکل حل نشد با دیباگ کردن فهمیدم که متوده onCreateView فرگمنت دوباره لود میشه لطفا راهنمایی کنید لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
kalizadeh81 1 ارسال شده در 29 آذر، ۱۳۹۵ اشتراک گذاری ارسال شده در 29 آذر، ۱۳۹۵ سلام بنده از شما مدیران گرامی خواهشمندم در رابطه با این موضوع یه آموزش کامل 0 تا 100 رو درست کنید مثل همین که اطلاعات رو توش قرار بده و ... با این کتابخانه از شما خواهش میکنم.... نسخه ی جدید این کتابخونه خودش ویو پیجر داره لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
coco 1,746
سلام دوستان
من در برنامم اومدم ار باتم نویگیشن استفاده میکنم
بعد بالاش هم یه فریم لی اوت گذاشتم
و میام تو رویداد آن تب سلکتدفرگمنتی که فریم لی اوت نشون میده رو تغییر میدم
حالا من تو فرگمنت اول یه ریسایکلر دارم که اطلاعات رو از اینترنت میگیره و نشون میده
و تو اون یکی یه ادیت تکست برای تست گذاشتم
وقتی سوییچ میکنم بینشون فرگمنتی که ادیت تکست داره ، متنه ادیت تکستش همون میمونه اما فرگمنتی که ریسایکلر داره (1 آیتم داره که تسته) بهش 1 دونه از همون آیتم اضافه میشه
اینم کدا :
MainActivity:
All Fragment:
لینک ارسال
به اشتراک گذاری در سایت های دیگر
7 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.