Panduan ringkas navigasi berbasis fragmen



Android-. - (Activity), - (Fragment) / (Custom View).

« — ». , . , .

Android, , . , , GitHub.

Activity


Android-, , (, ), , , «». (back stack). :



A1 ( - ), A2 A3. startActivityForResult(), , -.

, :

  • .
  • AndroidManifest.xml.
  • startActivity().

, . , . : , , .

, , . API level 11 …


Google, « Android 3.0 (API level 11) , , , . , , . . , , ».

, , . - , - . , , , , , , , .


, , , . , , . . , , . :



1 F1? , 1 F1, . , 1 F1 - (bundle), .

F1 1? , callback/observer, 1 F1, .

, 1 2? , , startActivityForResult().

: F1 F2? , -, . . , F2 F1 - . callback- F2 2, - , 1 F1.

, , . , , ?


, , ( 1, 2). .



, . , . FragmentManager, . , startActivityForResult(), callback/observer. .

:



1. AndroidManifest.xml


, . , . , , , .

-, . :

<?xml version="1.0" encoding="utf-8"?>
   package="com.exarlabs.android.fragmentnavigationdemo.ui" >
   <application android:name= ".FragmentNavigationDemoApplication"
       android:allowBackup="true"
       android:icon="@mipmap/ic_launcher"
       android:label="@string/app_name"
       android:supportsRtl="true"
       android:theme="@style/AppTheme">
       <activity
           android:name="com.exarlabs.android.fragmentnavigationdemo.ui.MainActivity"
           android:label="@string/app_name"
           android:screenOrientation="portrait"
           android:theme="@style/AppTheme.NoActionBar" >
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
   </application>
</manifest>

2.


, , NavigationManager. . , .. - .

, , . , , .

:

Intent intent = new Intent();
intent.putExtra("age", 40);
intent.putExtra("occupation", "developer");
intent.putExtra("gender", "female");
startActivityForResult(intent, 100);

onActivityResult :

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
}

, — «» . , , . , - , , , , .

, , ( ) _List_, , .

, . NavigationManager startPersonSelectorFragment() callback'.

mNavigationManager.startPersonSelectorFragment(40, "developer", "female",
      new PersonSelectorFragment.OnPersonSelectedListener() {
          @Override
          public boolean onPersonsSelected(List<Person> selection) {
       [do something]
              return false;
          }
      });

RetroLambda:

mNavigationManager.startPersonSelectorFragment(40, "developer", "female", selection -> [do something]);

3.


, . callback-, F1, , F2 . callback', _List_.

4.


(drawer), , .

, «» (inflate) , .

(FR*), . , , . — .



, . , «» . , ? -, .


, - , , , . , ?

, , , , , ShinobiControls, ViewPagers FragmentStatePagerAdapters.

, , . , , . , .

, , , , .


Android-. , , «».

, -, GitHub. .

Source: https://habr.com/ru/post/id394591/


All Articles