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

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

10
แถบเครื่องมือ Android การเพิ่มรายการเมนูสำหรับชิ้นส่วนต่างๆ
ฉันมีแถบเครื่องมือและลิ้นชักการนำทาง เมื่อฉันเริ่มแอปแถบเครื่องมือและลิ้นชักการนำทางจะถูกสร้างขึ้น เมื่อฉันคลิกรายการในลิ้นชักการนำทางมันจะเริ่มชิ้นส่วนใหม่และคงแถบเครื่องมือเดิมไว้ โดยพื้นฐานแล้วฉันจะเพิ่มรายการเมนูลงในแถบเครื่องมือได้อย่างไรเช่นค้นหาเพิ่มแก้ไขเมื่อฉันเริ่มชิ้นส่วนเฉพาะ ฉันไม่ต้องการให้พวกเขาเมื่อเริ่มต้นโปรแกรม แต่สร้างขึ้นแบบไดนามิก นอกจากนี้ฉันจะคลิกปุ่มเหล่านี้และเริ่มต้นส่วนอื่น ๆ ได้อย่างไร ฉันต้องการให้ในส่วนเดียวปุ่มแก้ไขในแถบเครื่องมือทำสิ่งที่เฉพาะเจาะจงเมื่อเทียบกับปุ่มแก้ไขในส่วนอื่น ขอบคุณ! Menu_toolbar: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/edit" android:orderInCategory="1" android:title="Edit" app:showAsAction="always" android:icon="@drawable/pencil_icon"/> <item android:id="@+id/add" android:orderInCategory="1" android:title="Add" app:showAsAction="always" android:icon="@drawable/plus_icon"/> แถบเครื่องมือ: <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="55dp" android:background="#10a1ff" android:title="Home" />

13
วิธีการปิดส่วนปัจจุบันโดยใช้ปุ่มเหมือนปุ่มย้อนกลับ?
ฉันพยายามปิดส่วนปัจจุบันโดยใช้ Imagebutton ฉันอยู่ใน Fragment-A และมันจะเปลี่ยนเป็น Fragment-B เมื่อฉันคลิกปุ่ม และเมื่อฉันคลิกปุ่มที่ Fragment-B มันจะเปลี่ยนเป็น Fragment-C และปิด Fragment-B ถ้าฉันคลิกปุ่มย้อนกลับที่ Fragment-C มันจะกลับไปที่ Fragment-A รหัสที่ฉันได้ลองมีดังต่อไปนี้ camera_album = (ImageButton) view.findViewById(R.id.camera_album); camera_album.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { closefragment(); Fragment fragment = FileBrowserFragment.newInstance(null, null, null) ; MainActivity.addFragment(LocalFileBrowserFragment.this, fragment) ; } }); private void closefragment() { getActivity().getFragmentManager().beginTransaction().remove(this).commit(); } …

9
รายการทางเลือกสำหรับ PreferenceFragment ด้วย android-support-v4.0
ฉันหยุดการพัฒนาแอปอย่างกะทันหันเนื่องจากฉันตระหนักว่าไม่รองรับ PreferenceFragments ในไลบรารีนี้ มีทางเลือกอื่นที่นักพัฒนา Android มือใหม่สามารถใช้เพื่อเอาชนะอุปสรรคนี้ได้หรือไม่? นี่คือหน้าต่างหลักของฉัน ณ ตอนนี้ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TabHost android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <FrameLayout android:id="@android:id/tabcontent" android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="0"/> <FrameLayout android:id="@+android:id/realtabcontent" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1"/> </LinearLayout> <TabWidget android:id="@android:id/tabs" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0" /> </TabHost> </LinearLayout> สำหรับ TabActivity ของฉันฉันกำลังใช้สิ่งที่พบทางออนไลน์ …

5
สิ้นสุดเหตุการณ์แอนิเมชั่น Android
ฉันมีภาพเคลื่อนไหวที่เลือนหายไปในมุมมอง (ซึ่งอยู่ภายในส่วนย่อย) และทุกครั้งที่ภาพเคลื่อนไหวเกิดขึ้นหลังจากเสร็จสิ้นมุมมองจะวาดใหม่อีกครั้ง view.SetVisibility(View.GONE)ฉันพบว่าการทำงานรอบทำ แต่มันไม่รอให้แอนิเมชั่นจบ ฉันต้องการเรียกใช้โค้ด setVisibility นี้หลังจากภาพเคลื่อนไหวเสร็จสิ้นแล้วเท่านั้น วิธีที่ดีที่สุดคืออะไร?

10
Android SharedPreferences ใน Fragment
ฉันพยายามอ่าน SharedPreferences ใน Fragment รหัสของฉันคือสิ่งที่ฉันใช้เพื่อรับค่ากำหนดในกิจกรรมอื่น ๆ SharedPreferences preferences = getSharedPreferences("pref", 0); ฉันได้รับข้อผิดพลาด Cannot make a static reference to the non-static method getSharedPreferences(String, int) from the type ContextWrapper ผมได้พยายามที่จะติดตามการเชื่อมโยงเหล่านี้ แต่ไม่มีโชคเข้าถึง SharedPreferences ผ่านวิธีการแบบคงที่และ SharedPreferences แบบคงที่ ขอบคุณสำหรับวิธีแก้ปัญหาใด ๆ

21
การตั้งค่าชื่อ ActionBar แบบกำหนดเองจาก Fragment
ใน Main ของFragmentActivityฉันฉันตั้งค่าActionBarหัวข้อที่กำหนดเองดังนี้: LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflator.inflate(R.layout.custom_titlebar, null); TextView tv = (TextView) v.findViewById(R.id.title); Typeface tf = Typeface.createFromAsset(this.getAssets(), "fonts/capsuula.ttf"); tv.setTypeface(tf); tv.setText(this.getTitle()); actionBar.setCustomView(v); ทำงานได้สมบูรณ์แบบ อย่างไรก็ตามเมื่อฉันเปิดรายการอื่นFragmentsฉันต้องการให้ชื่อเปลี่ยน ฉันไม่แน่ใจว่าจะเข้าถึง Main ได้Activityอย่างไร? ที่ผ่านมาฉันทำสิ่งนี้: ((MainFragmentActivity) getActivity()).getSupportActionBar().setTitle( catTitle); มีใครสามารถแนะนำวิธีการที่เหมาะสมได้หรือไม่? XML: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" > <TextView android:id="@+id/title" android:layout_width="wrap_content" …

9
แถบการดำเนินการขึ้นการนำทางด้วยชิ้นส่วน
ฉันมีแท็บ Actionbar / viewpager รูปแบบที่มีสามแท็บพูด, BและC ในแท็บCแท็บ (ส่วน) ผมกำลังเพิ่มอีกส่วนพูดส่วนD ด้วย DFragment f= new DFragment(); ft.add(android.R.id.content, f, ""); ft.remove(CFragment.this); ft.addToBackStack(null); ft.commit(); ฉันแก้ไขแถบการดำเนินการในปุ่ม onResume ของ DFragment เพื่อเพิ่ม: ActionBar ab = getActivity().getActionBar(); ab.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); ab.setDisplayHomeAsUpEnabled(true); ab.setDisplayShowHomeEnabled(true); ตอนนี้ใน DFragment เมื่อฉันกดปุ่มย้อนกลับของฮาร์ดแวร์ (โทรศัพท์) ฉันจะกลับไปที่เค้าโครงแบบแท็บ (ABC) ดั้งเดิมโดยเลือก CFragment ฉันจะใช้ฟังก์ชันนี้ด้วยปุ่มขึ้นแถบการทำงานได้อย่างไร

8
Android onClick ใน XML เทียบกับ OnClickListener
ฉันตระหนักดีว่ามีการถามคำถามที่ใช้คำคล้าย ๆ กันมาก่อน แต่นี่ต่างออกไป ฉันค่อนข้างใหม่ในการพัฒนาแอพ Android และฉันมีคำถามสามข้อเกี่ยวกับความแตกต่างระหว่างandroid:onclick=""แอตทริบิวต์ XML และsetOnClickListenerวิธีการ อะไรคือความแตกต่างระหว่างทั้งสอง? พบความแตกต่างระหว่างการใช้งานทั้งสองในเวลาคอมไพล์หรือรันไทม์หรือทั้งสองอย่าง กรณีการใช้งานใดบ้างที่เอื้อต่อการนำไปใช้งาน การใช้แฟรกเมนต์ใน Android ทำให้ตัวเลือกการใช้งานแตกต่างกันอย่างไร

2
วิธีป้องกันคนโง่ในการจัดการ Fragment ในการเปลี่ยนทิศทาง
public class MainActivity extends Activity implements MainMenuFragment.OnMainMenuItemSelectedListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager .beginTransaction(); // add menu fragment MainMenuFragment myFragment = new MainMenuFragment(); fragmentTransaction.add(R.id.menu_fragment, myFragment); //add content DetailPart1 content1= new DetailPart1 (); fragmentTransaction.add(R.id.content_fragment, content1); fragmentTransaction.commit(); } public void onMainMenuSelected(String …

12
ชิ้นส่วน Android การรักษา AsyncTask ระหว่างการหมุนหน้าจอหรือการเปลี่ยนแปลงการกำหนดค่า
ฉันกำลังทำงานกับแอปสมาร์ทโฟน / แท็บเล็ตโดยใช้ APK เพียงไฟล์เดียวและโหลดทรัพยากรตามความจำเป็นทั้งนี้ขึ้นอยู่กับขนาดหน้าจอตัวเลือกการออกแบบที่ดีที่สุดดูเหมือนจะใช้ Fragments ผ่าน ACL แอปนี้ทำงานได้ดีจนถึงขณะนี้เป็นเพียงกิจกรรมเท่านั้น นี่เป็นคลาสจำลองของวิธีที่ฉันจัดการ AsyncTasks และ ProgressDialogs ใน Activities เพื่อให้ทำงานได้แม้จะหมุนหน้าจอหรือมีการเปลี่ยนแปลงการกำหนดค่าเกิดขึ้นระหว่างการสื่อสาร ฉันจะไม่เปลี่ยนรายการเพื่อหลีกเลี่ยงการพักผ่อนหย่อนใจของกิจกรรมมีสาเหตุหลายประการที่ฉันไม่ต้องการทำ แต่ส่วนใหญ่เป็นเพราะเอกสารอย่างเป็นทางการบอกว่าไม่แนะนำและฉันได้จัดการโดยที่ยังไม่ได้ทำกิจกรรมนี้ดังนั้นโปรดอย่าแนะนำว่า เส้นทาง. public class Login extends Activity { static ProgressDialog pd; AsyncTask<String, Void, Boolean> asyncLoginThread; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.login); //SETUP UI OBJECTS restoreAsyncTask(); } @Override public Object onRetainNonConfigurationInstance() { …

2
ใช้ viewLifecycleOwner เป็น LifecycleOwner
ฉันมีชิ้นส่วน: class MyFragment : BaseFragment() { // my StudentsViewModel instance lateinit var viewModel: StudentsViewModel override fun onCreateView(...){ ... } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) viewModel = ViewModelProviders.of(this).get(StudentsViewModel::class.java) updateStudentList() } fun updateStudentList() { // Compiler error on 'this': Use viewLifecycleOwner as the LifecycleOwner viewModel.students.observe(this, Observer { //TODO: …

1
ViewModelStore และ viewModelStoreOwner คืออะไร
ฉันสับสนมากเนื่องจาก ViewModelProvider api ใหม่นี้ (ViewModelProviders เลิกใช้แล้ว) เช่นเดียวกับการเปลี่ยนแปลงใหม่มี Constructors ใหม่ด้วย (ซอร์สโค้ด) # 1 public ViewModelProvider(@NonNull ViewModelStoreOwner owner) { this(owner.getViewModelStore(), owner instanceof HasDefaultViewModelProviderFactory ? ((HasDefaultViewModelProviderFactory) owner).getDefaultViewModelProviderFactory() : NewInstanceFactory.getInstance()); } # 2 public ViewModelProvider(@NonNull ViewModelStoreOwner owner, @NonNull Factory factory) { this(owner.getViewModelStore(), factory); } # 3 public ViewModelProvider(@NonNull ViewModelStore store, @NonNull Factory factory) { …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.