คำถามติดแท็ก android-fragments

แฟรกเมนต์เป็นตัวแทนพฤติกรรมที่สามารถใช้ซ้ำได้หรือส่วนต่าง ๆ ของส่วนต่อประสานผู้ใช้ในแอพ Android

11
วงจรชีวิตของแฟรกเมนต์ - เมธอดใดถูกเรียกเมื่อแสดง / ซ่อน
ฉันใช้วิธีการต่อไปนี้เพื่อสลับระหว่าง Fragments (ใน NavigationDrawer ของฉัน) โดยการแสดง / ซ่อน protected void showFragment(int container, Fragment fragment, String tag, String lastTag, boolean addToBackStack ) { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); if ( lastTag != null && !lastTag.equals("")) { Fragment lastFragment = fragmentManager.findFragmentByTag( lastTag ); if ( lastFragment != null ) …

6
วิธีการใช้ setArguments () และ getArguments () เมธอดใน Fragments?
ฉันมีชิ้นส่วน 2 ชิ้น: (1) Frag1 (2) Frag2 หอม 1 bundl = new Bundle(); bundl.putStringArrayList("elist", eList); Frag2 dv = new Frag2(); dv.setArguments(bundl); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.the_fragg,dv); ft.show(getFragmentManager().findFragmentById(R.id.the_fragg)); ft.addToBackStack(null); ft.commit(); ฉันจะรับข้อมูลนี้ใน Frag2 ได้อย่างไร

4
วิธีจัดการข้อความตัวจัดการเมื่อหยุดกิจกรรม / ส่วนย่อยชั่วคราว
การเปลี่ยนแปลงเล็กน้อยในโพสต์อื่น ๆของฉัน โดยทั่วไปฉันมีข้อความHandlerในของฉันFragmentที่ได้รับพวงของข้อความที่จะส่งผลในไดอะล็อกถูกไล่ออกหรือแสดง เมื่อแอปถูกวางลงในพื้นหลังฉันจะได้รับonPauseแต่ก็ยังได้รับข้อความของฉันตามที่คาดหวัง อย่างไรก็ตามเนื่องจากฉันใช้ชิ้นส่วนฉันไม่สามารถปิดและแสดงกล่องโต้ตอบได้เนื่องจากจะทำให้เกิดIllegalStateExceptionไฟล์. ฉันไม่สามารถยกเลิกหรือยกเลิกการอนุญาตให้สูญเสียสถานะได้ เนื่องจากฉันมีข้อHandlerสงสัยว่ามีแนวทางที่แนะนำเกี่ยวกับวิธีจัดการข้อความในขณะที่อยู่ในสถานะหยุดชั่วคราวหรือไม่ วิธีแก้ปัญหาที่เป็นไปได้วิธีหนึ่งที่ฉันกำลังพิจารณาคือบันทึกข้อความที่ผ่านเข้ามาในขณะที่หยุดชั่วคราวและเล่นกลับในonResumeไฟล์. สิ่งนี้ค่อนข้างไม่น่าพอใจและฉันคิดว่าจะต้องมีบางอย่างในกรอบเพื่อจัดการสิ่งนี้อย่างหรูหรากว่านี้

13
Fragment ใน ViewPager โดยใช้ FragmentPagerAdapter จะว่างเปล่าในครั้งที่สองที่ดู
ฉันมีอินเทอร์เฟซแฟรกเมนต์พร้อมแท็บที่ด้านล่างซึ่งเปิดส่วนต่างๆในมุมมองหลัก ฉันมีส่วนหนึ่งโดยเฉพาะซึ่งเป็นรายการของรายการ หากผู้ใช้เลือกรายการใดรายการหนึ่งในรายการนี้ส่วนอื่นจะเปิดขึ้นซึ่งมี viewpager ซึ่งเลื่อนตามแนวนอนระหว่างรายการทั้งหมดในรายการในส่วนก่อนหน้า ใช้งานได้ดี viewpager ใช้ FragmentPagerAdapter เพื่อแสดงรายการ ปัญหาเกิดขึ้นเมื่อผู้ใช้เลือกรายการในรายการดูรายการจากนั้นกดปุ่มบนแถบแท็บเพื่อกลับไปที่รายการจากนั้นเลือกรายการอื่น ครั้งที่สองที่เลือกรายการหน้าจอว่างจะปรากฏขึ้นแทน viewpager ฉันไม่ได้รับข้อผิดพลาดใน LogCat ของฉันเมื่อสิ่งนี้เกิดขึ้น เหตุใด viewpager จึงปรากฏในครั้งแรกเท่านั้น FragmentPagerAdapter: public class ViewPagerAdapter extends FragmentPagerAdapter { Cursor mCursor; public ViewPagerAdapter(FragmentManager fm, Cursor c) { super(fm); mCursor = c; } public void changeCursor(Cursor c) { mCursor = c; this.notifyDataSetChanged(); } @Override …

3
ความหมายของ addToBackStack ที่มีพารามิเตอร์ null คืออะไร?
ฉันมีรหัสลูกค้า มีเพียงกิจกรรมเดียวสำหรับชิ้นส่วนทั้งหมดนั่นคือกิจกรรมเดียวคือการจัดการชิ้นส่วนทั้งหมด กิจกรรมนี้มีรหัสต่อไปนี้สำหรับส่วนใด ๆ ที่ส่วนท้ายของวิธีการของส่วนนั้น - ตัวอย่างเช่น - ส่วน MoreFragment: MoreFragment firstFragment = new MoreFragment(); getSupportFragmentManager().beginTransaction() .replace(R.id.article_fragment, firstFragment) .addToBackStack(null).commit(); ดังนั้น, 1) ความหมายของaddToBackStack(null)ตามด้วย a commit()คืออะไร? 2) ทำไมคุณต้องส่งผ่านพารามิเตอร์ null ไปaddToBackStack? 3) จะรับชิ้นส่วนนั้นได้อย่างไรหลังจากถูกเพิ่มเข้าไปเช่นนี้? ดูเหมือนว่ารหัสนี้จะไร้ประโยชน์เมื่อฉันรันโค้ดโดยไม่มีบรรทัดสุดท้าย.addToBackStack(null).commit()และมันก็ทำงานโดยไม่มีปัญหาใด ๆ

9
แสดง DialogFragment พร้อมภาพเคลื่อนไหวที่เติบโตจากจุดหนึ่ง
ฉันกำลังแสดงDialogFragmentเมื่อผู้ใช้แตะที่แถวในไฟล์ListView. ฉันต้องการทำให้การแสดงกล่องโต้ตอบเป็นภาพเคลื่อนไหวเพื่อให้โตขึ้นจากกึ่งกลางของแถว คุณสามารถเห็นเอฟเฟกต์ที่คล้ายกันได้เมื่อเปิดโฟลเดอร์จากตัวเรียกใช้งาน หนึ่งความคิดที่ว่าฉันเคยเป็นส่วนผสมของและTranslateAnimation ScaleAnimationมีวิธีอื่นอีกไหม

12
Fragments onResume จาก back stack
ฉันใช้แพ็คเกจความเข้ากันได้เพื่อใช้ Fragments กับ Android 2.2 เมื่อใช้แฟรกเมนต์และเพิ่มการเปลี่ยนระหว่างพวกมันไปที่แบ็คสแต็กฉันต้องการให้เกิดพฤติกรรมเดียวกันของ onResume ของกิจกรรมนั่นคือเมื่อใดก็ตามที่แฟรกเมนต์ถูกนำไปที่ "โฟร์กราวด์" (ผู้ใช้มองเห็นได้) หลังจากที่โผล่ออกมาจาก backstack ฉันต้องการให้มีการเปิดใช้งานการโทรกลับบางประเภทภายในส่วน (เพื่อทำการเปลี่ยนแปลงบางอย่างในทรัพยากร UI ที่แชร์เป็นต้น) ฉันเห็นว่าไม่มีการเรียกกลับภายในกรอบส่วนย่อย มีแนวทางปฏิบัติที่ดีเพื่อให้บรรลุเป้าหมายนี้หรือไม่?

4
เค้าโครงผู้ประสานงานพร้อมแถบเครื่องมือในส่วนย่อยหรือกิจกรรม
ด้วยไลบรารีการออกแบบใหม่มีเค้าโครงใหม่หลายแบบที่เปลี่ยนแปลงวิธีการทำงานของแถบเครื่องมืออย่างมากหากนักพัฒนาต้องการ เนื่องจากแฟรกเมนต์ที่แตกต่างกันมีพฤติกรรมและวัตถุประสงค์ที่แตกต่างกันตัวอย่างเช่นแฟรกเมนต์แกลเลอรีที่มีแถบเครื่องมือการยุบซึ่งแสดงรูปภาพที่สำคัญหรือส่วนที่ไม่มีมุมมองแบบเลื่อนที่ไม่จำเป็นต้องใช้แอพบาร์เลย์เอาต์สำหรับการซ่อนแถบเครื่องมือการมีแถบเครื่องมือเดียวในกิจกรรมสามารถทำได้ พิสูจน์ยาก. ด้วยเหตุนี้ฉันควรย้ายแถบเครื่องมือไปยังแต่ละส่วนหรือไม่ ถ้าเป็นเช่นนั้นฉันต้องตั้งค่า supportActionBar ทุกครั้งที่แสดงแฟรกเมนต์และยังมีการอ้างอิงของกิจกรรมในแฟรกเมนต์ซึ่งจะลบล้างลักษณะอิสระของแฟรกเมนต์ ถ้าฉันปล่อยแถบเครื่องมือไว้ในกิจกรรมเพียงอย่างเดียวฉันต้องมีเค้าโครงหลายแบบที่กำหนดไว้สำหรับพฤติกรรมแต่ละประเภทในแต่ละส่วน แนวทางที่ดีที่สุดคืออะไร?

10
มีวิธีการทำงานเช่น start fragment for result หรือไม่?
ขณะนี้ฉันมีส่วนในภาพซ้อนทับ นี่คือการลงชื่อเข้าใช้บริการ ในแอพโทรศัพท์แต่ละขั้นตอนที่ฉันต้องการแสดงในภาพซ้อนทับคือหน้าจอและกิจกรรมของตัวเอง ขั้นตอนการลงชื่อเข้าใช้มี 3 ส่วนและแต่ละส่วนมีกิจกรรมของตนเองที่ถูกเรียกด้วย startActivityForResult () ตอนนี้ฉันต้องการทำสิ่งเดียวกันโดยใช้ชิ้นส่วนและภาพซ้อนทับ ภาพซ้อนทับจะแสดงส่วนที่เกี่ยวข้องกับแต่ละกิจกรรม ปัญหาคือชิ้นส่วนเหล่านี้โฮสต์อยู่ในกิจกรรมใน Honeycomb API ฉันสามารถทำให้ส่วนแรกทำงานได้ แต่ฉันต้อง startActivityForResult () ซึ่งเป็นไปไม่ได้ มีบางอย่างตามบรรทัดของ startFragmentForResult () ที่ฉันสามารถเริ่มต้นส่วนใหม่ได้หรือไม่และเมื่อเสร็จแล้วจะส่งคืนผลลัพธ์ไปยังส่วนก่อนหน้าหรือไม่

6
จะเพิ่มตัวคั่นส่วนหนึ่งสำหรับ Navigation Drawer ใน Android ได้อย่างไร
ฉันมีลิ้นชักการนำทางเหมือนภาพนี้ ฉันต้องการเพิ่มตัวคั่นส่วน (เช่นเส้นคั่นดาวเนปจูน) ดูเหมือนง่าย แต่ฉันไม่พบสิ่งใดในเว็บที่เป็นประโยชน์สำหรับกรณีของฉัน นี่คือ MainActivity ของฉัน: public class MainActivity extends Activity { private DrawerLayout mDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; private CharSequence mDrawerTitle; private CharSequence mTitle; private String[] mPlanetTitles; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTitle = mDrawerTitle = getTitle(); mPlanetTitles = getResources().getStringArray(R.array.planets_array); mDrawerLayout = …

7
จะอัพเดตรายการเมนูที่แสดงใน ActionBar ได้อย่างไร?
ฉันมีกิจกรรมที่มีเศษ 2 ส่วน ทั้งสองเป็น ListFragments และทั้งสองมีส่วนร่วม MenuItems ไปยังเมนู ฉันมี MenuItem รายการหนึ่งที่ฉันได้ตั้งค่าแอตทริบิวต์ android: showAsAction ให้แสดงเป็นปุ่มบน ActionBar ซึ่งใช้งานได้ดี ตอนนี้ MenuItem ขึ้นอยู่กับสถานะ เป็นตัวเลือกเมนู Pause / Resume สำหรับหยุดชั่วคราวและกลับมาทำคิวต่อ ปัญหาของฉันคือฉันไม่สามารถหาวิธีตั้งค่ารูปปั้นเริ่มต้นเมื่อสร้าง Fragment สถานะขึ้นอยู่กับว่าคิวหยุดชั่วคราวหรือไม่ ดังนั้นฉันจึงมี AsyncTask ที่รับคิวและตั้งค่าบูลีน (หยุดชั่วคราว) ตามสถานะของคิว ฉันกำลังเรียกใช้ onPrepareOptionsMenu เพื่อตั้งค่าข้อความสำหรับรายการเมนูหยุดชั่วคราวตามสถานะสุดท้ายที่ทราบของคิวและจะใช้งานได้ดีถ้าฉันออกจาก MenuItem ในเมนูจริง คุณแตะไอคอนเมนูและ onPrepareOptionsMenu จะเริ่มทำงานและเมนูจะได้รับการอัปเดตก่อนที่จะแสดง ปัญหาคือถ้าฉันใส่ MenuItem เดียวกันบน ActionBar (showAsAction) ฉันจะบังคับให้อัปเดตโดยไม่ต้องเรียก onPrepareOptionsMenu ได้อย่างไร ฉันต้องสามารถทำได้เพราะในการเปิดตัวแอปครั้งแรกฉันส่งคำขอเพื่อรับคิว แต่งานจะกลับมาหลังจากที่ …

9
จะรับฟังการเปลี่ยนแปลงความชอบภายใน PreferenceFragment ได้อย่างไร
ตามที่อธิบายไว้ที่นี่ฉันกำลังคลาสย่อย PreferenceFragment และแสดงไว้ในกิจกรรม เอกสารนั้นจะอธิบายวิธีการรับฟังการเปลี่ยนแปลงค่ากำหนดที่นี่แต่เฉพาะในกรณีที่คุณซับคลาส PreferenceActivity เนื่องจากฉันไม่ได้ทำอย่างนั้นฉันจะรับฟังการเปลี่ยนแปลงความชอบได้อย่างไร ฉันได้ลองใช้ OnSharedPreferenceChangeListener ใน PreferenceFragment แล้ว แต่ดูเหมือนจะไม่ได้ผล ( onSharedPreferenceChangedดูเหมือนจะไม่ได้รับการเรียก) นี่คือรหัสของฉันจนถึงตอนนี้: SettingsActivity.java public class SettingsActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Display the fragment as the main content. getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit(); } } SettingsFragment.java public class SettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener …

14
ตั้งค่าสถานะของ BottomSheetDialogFragment เป็นขยาย
คุณตั้งค่าสถานะของส่วนที่ขยายเป็นส่วนBottomSheetDialogFragmentขยายโดยBottomSheetBehavior#setState(STATE_EXPANDED)ใช้ Android Support Design Library (v23.2.1) ได้อย่างไร https://code.google.com/p/android/issues/detail?id=202396พูดว่า: แผ่นด้านล่างถูกตั้งค่าเป็น STATE_COLLAPSED ในตอนแรก เรียก BottomSheetBehavior # setState (STATE_EXPANDED) ถ้าคุณต้องการขยาย โปรดทราบว่าคุณไม่สามารถเรียกใช้เมธอดก่อนดูเค้าโครง ปฏิบัติปัญหาต้องมีมุมมองที่จะสูงขึ้นเป็นครั้งแรก แต่ผมไม่แน่ใจว่าวิธีการที่ฉันจะตั้ง BottomSheetBehaviour ลงบนเศษ ( BottomSheetDialogFragment) View bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet); BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet);

9
วิธีตรวจสอบสิทธิ์ในส่วนย่อย
ฉันต้องการตรวจสอบการอนุญาตภายในส่วน รหัสของฉัน: // Here, thisActivity is the current activity if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // Should we show an explanation? if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), android.Manifest.permission.ACCESS_FINE_LOCATION)) { // Show an explanation to the user *asynchronously* -- don't block // this thread waiting for the user's response! After the user // sees the …

7
เริ่มกิจกรรมจากส่วนย่อย
ฉันมีชิ้นส่วน 2 ชิ้นโดยมีปุ่มทั้งสองชิ้น เมื่อฉันกดปุ่มฉันต้องการเริ่มกิจกรรมใหม่ แต่ฉันไม่สามารถทำให้มันทำงานได้ ข้อผิดพลาดที่ฉันได้รับ: ERROR ที่นี่: พิมพ์ไม่ตรงกัน: ไม่สามารถแปลงจาก mFragmentFavorite เป็น Fragment ผมทำอะไรผิดหรือเปล่า? MyFragmentPagerAdapter import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; public class MyFragmentPagerAdapter extends FragmentPagerAdapter{ final int PAGE_COUNT = 3; /** Constructor of the class */ public MyFragmentPagerAdapter(FragmentManager fm) { super(fm); } /** This method will be invoked when …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.