@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init here language again then
setContentView(R.layout.activity_terms_of_use);
public class ActivityWithWebView extends AppCompatActivity {
private WebView webView;
private static boolean firstTime = true;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
setContentView(R.layout.activity_with_web_view);
setSupportActionBar(findViewById(R.id.toolbar));
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) actionBar.setTitle(R.string.instructions);
// WebView has to be loaded dynamically to prevent in-app localisation issue.
webView = new WebView(this);
if (firstTime) {
// Recreate if loaded for the first time to prevent localisation issue.
recreate();
firstTime = false;
return;
}
LinearLayoutCompat webviewWrapper = findViewById(R.id.webview_wrapper);
webView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
webviewWrapper.addView(webView);
// Do other works.
}
}
3条答案
按热度按时间bvjveswy1#
您可以动态添加Web视图,然后重新初始化语言。
它会起作用的
2izufjch2#
在具有webView活动中
to94eoyn3#
经过大量的测试,并遵循其他答案的建议,我终于解决了这个问题。
WebView
的问题:WebView
。首次通过Activity#setContentView()
从XML文件加载将不起作用,并且整个Activity的本地化将中断。但是,后续启动或Activity#recreate()
将按预期工作。WebView
是动态加载的,它在第一次加载时也不能正常工作。同样,后续的加载或Activity#recreate()
将正常工作。考虑到上述问题,解决方案涉及动态加载
WebView
,然后立即重新创建Activity。具有Web视图的活动.java
带有web视图的活动.xml