我添加了一个新动作Navigation.xml
:
<fragment
android:id="@+id/launcher_home"
android:name="com.example.android.codelabs.navigation.MainFragment"
android:label="@string/home"
tools:layout="@layout/main_fragment">
<action
android:id="@+id/go_to_step_one"
app:destination="@id/flow_step_one" />
</fragment>
Run Code Online (Sandbox Code Playgroud)
调用导航操作时,如果我使用,导航工作正常:
view.findViewById<Button>(R.id.navigate_action_bt)?.setOnClickListener(
Navigation.createNavigateOnClickListener(R.id.go_to_step_one, null)
)
Run Code Online (Sandbox Code Playgroud)
但是当用lambda调用它时,它不起作用:
view.findViewById<Button>(R.id.navigate_action_bt)?.setOnClickListener {
Navigation.createNavigateOnClickListener(R.id.go_to_step_one, null)
}
Run Code Online (Sandbox Code Playgroud) android kotlin android-architecture-components android-jetpack android-architecture-navigation
我正在使用下面的代码在按钮点击时更改我的应用程序语言(例如从法语更改为英语),它在Android 4.0 +上工作正常但在5.0上却没有.
Locale localeEn = new Locale("en_US");
Locale.setDefault(localeEn);
Configuration configEn = new Configuration();
configEn.locale = localeEn;
getApplicationContext().getResources().updateConfiguration(configEn, null);
this.recreate();
Run Code Online (Sandbox Code Playgroud)
有什么线索为什么好吗?
编辑:这是我的清单(使用android:configChanges)
<activity
android:name=".activities.LoginActivity"
android:configChanges="orientation|locale"
android:label="@string/app_name"
android:screenOrientation="portrait"/>
Run Code Online (Sandbox Code Playgroud) android ×2
android-architecture-components ×1
android-architecture-navigation ×1
kotlin ×1
locale ×1