Flèche arrière Android dans la barre d'outils (AppCompatActivity)
J'en veux pour preuve le bouton flèche de retour dans mon application, mais l'application se bloque quand j'ai mis ceci dans mon code:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
style.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/PrimaryColor</item>
<item name="colorPrimaryDark">@color/PrimaryColorDark</item>
<item name="colorAccent">@color/PrimaryColor</item>
<item name="colorControlHighlight">@color/ControlHighlight</item>
<item name="android:statusBarColor" tools:targetApi="21">@android:color/transparent</item>
</style>
<style name="ActionBarPopupThemeOverlay" parent="ThemeOverlay.AppCompat.Light" >
<item name="android:textColor">#000000</item>
</style>
<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
<item name="tabIndicatorColor">#FFFFFF</item>
<item name="tabIndicatorHeight">3dp</item>
<item name="tabTextAppearance">@style/MyCustomTabTextAppearance</item>
</style>
<style name="MyCustomTabTextAppearance" parent="TextAppearance.Design.Tab">
<item name="android:textColor">#FFFFFF</item>
</style>
toolbar.xml
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="@dimen/abc_action_bar_default_height_material"
android:elevation="0dp"
android:layout_width="match_parent"
android:id="@+id/toolbar"
android:background="@color/PrimaryColor"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ActionBarPopupThemeOverlay"/>
Classe (ne pas Fragmenter):
public class WebViewCanale extends AppCompatActivity {
Toolbar toolbar;
TextView textView;
WebView webView;
ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview_canali);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
//Toolbar
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//FindViewById
webView = (WebView) findViewById(R.id.webview);
textView = (TextView) findViewById(R.id.textView);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
//Impostazioni WebView
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setLoadsImagesAutomatically(true);
webView.loadUrl(this.getIntent().getDataString());
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.getSettings().setAppCacheEnabled(false);
//Titolo Toolbar
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
if (!TextUtils.isEmpty(title)) {
WebViewCanale.this.setTitle(title);
}
}
});
}
}
source d'informationauteur Simone Varletta
Vous devez vous connecter pour publier un commentaire.
Je me demande pourquoi il n'y a pas une réponse complète à cette fin, mais finalement j'ai résolu le problème sur mon propre:
Utiliser le code suivant pour avoir bouton de retour sur le barre d'outils dans un AppCompatActivity:
Vous pouvez aussi déclarer dans le
Manifest
unParentActivity
avec:<activity
android:name=".ThisActivity"
android:parentActivityName=".TheActivityThatCalledThisOne">
</activity>
ajouter ce thème:
et en activité:
onSupportNavigateUp()
Cette méthode est appelée lorsque l'utilisateur choisit de naviguer au sein de votre l'activité de l'application de la hiérarchie à partir de la barre d'action.
onBackPressed();
Prendre soin de sauter le fragment arrière de la pile ou de la finition de l'activité selon le cas.
Vous devez définir le soutien actionbar première avant que vous pouvez obtenir. ainsi, placez le code suivant
Avant ce Code