我对导航组件有点陌生,我有多个用于单独活动的导航图。当我恢复活动时,其中两个活动被销毁。
graph.xml
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/garden_mapping_navigation"
app:startDestination="@id/gardens">
<fragment
android:id="@+id/gardens"
android:name="com.ezyagric.extension.android.ui.gardenmapping.gardens.GardensFragment"
android:label="Gardens"
tools:layout="@layout/garden_mapping_garden_list">
<action
android:id="@+id/gardensToMapping"
app:destination="@id/mappingFragment" />
<action
android:id="@+id/gardensToMapView"
app:destination="@id/viewMapFragment" />
</fragment>
<fragment
android:id="@+id/mappingFragment"
android:name="com.ezyagric.extension.android.ui.gardenmapping.mapping.MappingFragment"
android:label="Garden Mapping"
tools:layout="@layout/garden_mapping_map_garden"/>
<fragment
android:id="@+id/viewMapFragment"
android:name="com.ezyagric.extension.android.ui.gardenmapping.viewmap.ViewMapFragment"
android:label="View Map"
tools:layout="@layout/garden_mapping_view_map">
<argument
android:name="garden"
app:argType="com.ezyagric.extension.android.data.db.gardens.Garden"
app:nullable="true"
android:defaultValue="@null" />
</fragment>
</navigation>
activity.xml
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:id="@+id/fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/garden_mapping_navigation" />
</LinearLayout>
</layout>
Activity.java
import com.ezyagric.extension.android.R;
import com.ezyagric.extension.android.databinding.ActivityBinding;
import com.ezyagric.extension.android.ui._base.BaseActivity;
public class MappingActivity extends BaseActivity<ActivityBinding> {
@Override
public int getBindingVariable() {
return 0;
}
@Override
public int getLayoutId() {
return R.layout.garden_mapping_activity;
}
}
BaseActivity.java
public abstract class BaseActivity<T extends ViewDataBinding> extends DaggerAppCompatActivity {
private static final String TAG = "BaseActivity";
private T mViewDataBinding;
/**
* Override for set binding variable
*
* @return variable id
*/
public abstract int getBindingVariable();
/**
* @return layout resource id
*/
public abstract
@LayoutRes
int getLayoutId();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
performDataBinding();
}
public T getViewDataBinding() {
return mViewDataBinding;
}
private void performDataBinding() {
mViewDataBinding = DataBindingUtil.setContentView(this, getLayoutId());
}
}
我哪里出问题了?
导航组件版本
def nav_version = "2.3.0-beta01"
implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version"