小编jay*_*dia的帖子

Android导航组件弹出过渡问题

我有2个动作

动作1

 <action
        android:id="@+id/actionBaseFragmentToAskForLocation"
        app:destination="@+id/introAskForLocationFragment"
        app:enterAnim="@anim/slide_in_right"
        app:exitAnim="@anim/slide_out_left"
        app:popEnterAnim="@anim/slide_in_left"
        app:popExitAnim="@anim/slide_out_right" />
Run Code Online (Sandbox Code Playgroud)

动作2

<action
        android:id="@+id/actionIntroAskLocationToLogin"
        app:destination="@id/loginFragment"
        app:enterAnim="@anim/slide_in_right"
        app:exitAnim="@anim/slide_out_left"
        app:popEnterAnim="@anim/slide_in_right"
        app:popExitAnim="@anim/fade_out"
        app:popUpTo="@+id/app_main_navigation" />
Run Code Online (Sandbox Code Playgroud)

我想要的是当第二个动作被触发时,我想清除后堆栈并仅将loginFragment设置为保留在堆栈中。

唯一的问题是当我执行Action2时,将“ slide_out_right”作为退出动画执行

我知道,如果我们从堆栈中弹出片段,则将触发action1的“ popExitAnim”,而不是action2的“ exitAnim”。

但是我想知道如何让片段执行slide_out_left动画以退出并同时将其弹出堆栈。

android android-navigation android-architecture-components android-architecture-navigation

12
推荐指数
2
解决办法
3467
查看次数

CustomScope可能不会引用具有不同范围的绑定

我是匕首的新手,我已经定义了这样的应用程序组件

@Singleton
@Component(modules = {ApplicationModule.class})
public interface ApplicationComponent {
    void inject(BaseActivity activity);
    Context context();
}
Run Code Online (Sandbox Code Playgroud)

这是我的ApplicationModule

@Module
public class ApplicationModule {

    public TipoApplication application;

    public ApplicationModule(TipoApplication application) {
        this.application = application;
    }

    @Singleton
    @Provides
    public Context provideContext(){return application.getApplicationContext();}

    @Singleton
    @Provides
    public SharedPreferences provideSharedPreferences(Context context){
        return PreferenceManager.getDefaultSharedPreferences(context);
    }

    @Singleton
    @Provides
    public Gson provideGson(){
        return new Gson();
    }

    @Singleton
    @Provides
    public SharedPrefsManager provideSharedPrefsManager(SharedPreferences sharedPreferences, Gson gson){
        return new SharedPrefsManager(sharedPreferences, gson);
    }
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个依赖的组件LocationProviderComponent

@LocationScope
@Component(dependencies = {ApplicationComponent.class},modules = {LocationProviderModule.class})
public interface LocationProviderComponent …
Run Code Online (Sandbox Code Playgroud)

android dependency-injection dagger android-studio dagger-2

4
推荐指数
1
解决办法
2554
查看次数