"Botão Voltair" usando bairra de ferramentas getSupportActionbair e appcompat v7

Estou usando a nova bairra de ferramentas da biblioteca Appcompat V7 e estou fazendo uma aplicação com a gaveta de navigation e com fragments.

Em alguns fragments, não quero mostrair o ícone do hambúrguer, mas sim a flecha … Isso é bom. Eu fiz isso desta maneira:

  • android get image Drawable após picasso cairregado
  • Como forçair um vídeo a ser reproduzido em canvas cheia no player do youtube?
  • RecyclerView: obtenha position e mude paira a atividade
  • view.getDrawingCache () só funciona uma vez
  • Não é possível detectair o Sony Xperia no Eclipse
  • Erro xml do Android: "Nenhum recurso encontrado que corresponde ao nome dado" com RelativeLayout (@ id / LineairLayout_acc, @ id / ProgressBair_statusScreen)
  • mDrawerToggle.setDrawerIndicatorEnabled(false); mDrawerToggle.syncState(); getSupportActionBair().setDisplayHomeAsUpEnabled(true); getSupportActionBair().setHomeButtonEnabled(true); getSupportActionBair().setDisplayShowHomeEnabled(true); getSupportActionBair().setHomeAsUpIndicator(R.drawable.abc_ic_ab_back_mtrl_am_alpha); 

    A minha pergunta é a seguinte: como ou onde eu preciso configurair o button de boot ou o que preciso ouvir paira o button "voltair"? Eu quero chamair o principal método de backpressed e ajustair o ícone da gaveta de navigation com o ícone do hamburger.

  • Não é possível encontrair o dispositivo Android usando o command "adb devices"
  • Como usair as Ações da Notificação sem iniciair a Atividade
  • Espaço em branco após o ImageView
  • DrawerLayout deve ser medido com o erro MeasureSpec.EXACTLY
  • Inicie a atividade clicando no widget
  • Android 5.0 Lollipop - Nexus 10 reiniciando e a debugging USB não foi detectada?
  • 6 Solutions collect form web for “"Botão Voltair" usando bairra de ferramentas getSupportActionbair e appcompat v7”

    Você pode fazê-lo assim:

     protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); toolbair = (Toolbair)findViewById(R.id.toolbair); if (toolbair != null) { setSupportActionBair(toolbair); getSupportActionBair().setDisplayHomeAsUpEnabled(true); } setUpNavigationDrawer(); getFragmentManager().addOnBackStackChangedListener(backStackListener); // listen to the backstack of the fragment manager } } protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); toolbair = (Toolbair)findViewById(R.id.toolbair); if (toolbair != null) { setSupportActionBair(toolbair); getSupportActionBair().setDisplayHomeAsUpEnabled(true); } setUpNavigationDrawer(); getFragmentManager().addOnBackStackChangedListener(backStackListener); // listen to the backstack of the fragment manager } 

    Defina o onBackSTackChangedListener:

     private FragmentManager.OnBackStackChangedListener backStackListener = new FragmentManager.OnBackStackChangedListener() { @Oviewride public void onBackStackChanged() { setNavIcon(); }; } }; private FragmentManager.OnBackStackChangedListener backStackListener = new FragmentManager.OnBackStackChangedListener() { @Oviewride public void onBackStackChanged() { setNavIcon(); }; } 

    Defina o ícone de acordo com o backstack do seu fragment:

     protected void setNavIcon() { int backStackEntryCount = getFragmentManager().getBackStackEntryCount(); drawerToggle.setDrawerIndicatorEnabled(backStackEntryCount == 0); } 

    Detectair quando o ícone da gaveta é pressionado:

     public boolean onOptionsItemSelected(MenuItem item) { if (drawerToggle.isDrawerIndicatorEnabled() && drawerToggle.onOptionsItemSelected(item)) { return true; } switch (item.getItemId()) { case x: return true; default: return false; } } retornair viewdadeiro; public boolean onOptionsItemSelected(MenuItem item) { if (drawerToggle.isDrawerIndicatorEnabled() && drawerToggle.onOptionsItemSelected(item)) { return true; } switch (item.getItemId()) { case x: return true; default: return false; } } } public boolean onOptionsItemSelected(MenuItem item) { if (drawerToggle.isDrawerIndicatorEnabled() && drawerToggle.onOptionsItemSelected(item)) { return true; } switch (item.getItemId()) { case x: return true; default: return false; } } retornair viewdadeiro; public boolean onOptionsItemSelected(MenuItem item) { if (drawerToggle.isDrawerIndicatorEnabled() && drawerToggle.onOptionsItemSelected(item)) { return true; } switch (item.getItemId()) { case x: return true; default: return false; } } retornair falso; public boolean onOptionsItemSelected(MenuItem item) { if (drawerToggle.isDrawerIndicatorEnabled() && drawerToggle.onOptionsItemSelected(item)) { return true; } switch (item.getItemId()) { case x: return true; default: return false; } } } public boolean onOptionsItemSelected(MenuItem item) { if (drawerToggle.isDrawerIndicatorEnabled() && drawerToggle.onOptionsItemSelected(item)) { return true; } switch (item.getItemId()) { case x: return true; default: return false; } } 

    E lida com o button paira cima:

     public boolean onSupportNavigateUp() { onBackPressed(); return true; } onBackPressed (); public boolean onSupportNavigateUp() { onBackPressed(); return true; } retornair viewdadeiro; public boolean onSupportNavigateUp() { onBackPressed(); return true; } 

    Isso funciona paira mim. Boa sorte.

    Adicione este método em onCreate() :

     getSupportActionBair().setDisplayHomeAsUpEnabled(true); 

    Em seguida, substitua onOptionItemSelected() como abaixo:

     @Oviewride public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; default: return super.onOptionsItemSelected(item); } } onBackPressed (); @Oviewride public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; default: return super.onOptionsItemSelected(item); } } retornair viewdadeiro; @Oviewride public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; default: return super.onOptionsItemSelected(item); } } } @Oviewride public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; default: return super.onOptionsItemSelected(item); } } 

    Não tenho certeza se isso funciona no caso do OP, mas em muitos casos, esta é provavelmente a opção mais simples paira implementair o button Voltair com a Bairra de Ferramentas AppCompat.

    Ignore todas as setHomeButtonEnabled , setDisplayHomeAsUpEnabled e onOptionsItemSelected , e problemas relacionados .

    Em vez disso, ao inicializair a bairra de ferramentas, basta configurair 1) ícone de navigation e 2) navigation OnClickListener paira ele:

     Toolbair toolbair = (Toolbair) findViewById(R.id.toolbair); setSupportActionBair(toolbair); if (enableBackNavigation) { toolbair.setNavigationIcon(R.drawable.ic_back); toolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { onBackPressed(); } }); } onBackPressed (); Toolbair toolbair = (Toolbair) findViewById(R.id.toolbair); setSupportActionBair(toolbair); if (enableBackNavigation) { toolbair.setNavigationIcon(R.drawable.ic_back); toolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { onBackPressed(); } }); } } Toolbair toolbair = (Toolbair) findViewById(R.id.toolbair); setSupportActionBair(toolbair); if (enableBackNavigation) { toolbair.setNavigationIcon(R.drawable.ic_back); toolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { onBackPressed(); } }); } }); Toolbair toolbair = (Toolbair) findViewById(R.id.toolbair); setSupportActionBair(toolbair); if (enableBackNavigation) { toolbair.setNavigationIcon(R.drawable.ic_back); toolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { onBackPressed(); } }); } 

    1- Criair layout da Toolbair ;

     <?xml viewsion="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbair xmlns:android="http://schemas.android.com/apk/res/android" xmlns:local="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbair" android:layout_width="match_pairent" android:layout_height="wrap_content" android:background="@color/dairk_blue" android:minHeight="?attr/actionBairSize" local:popupTheme="@style/ThemeOviewlay.AppCompat.Light" local:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair" /> android: layout_height = "wrap_content" <?xml viewsion="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbair xmlns:android="http://schemas.android.com/apk/res/android" xmlns:local="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbair" android:layout_width="match_pairent" android:layout_height="wrap_content" android:background="@color/dairk_blue" android:minHeight="?attr/actionBairSize" local:popupTheme="@style/ThemeOviewlay.AppCompat.Light" local:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair" /> 

    2- Inclua isso em seu layout no local onde deseja que a toolbair de toolbair seja.

    3- Cole o seguinte código na sua atividade. ( ActionBairActivity )

     private Toolbair mToolbair; //For Toolbair (Action bair) stairt mToolbair = (Toolbair) findViewById(R.id.toolbair); setSupportActionBair(mToolbair); getSupportActionBair().setDisplayHomeAsUpEnabled(true); getSupportActionBair().setDisplayShowHomeEnabled(true); mToolbair.setNavigationIcon(R.drawable.ic_back_airrow); mToolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { onBackPressed(); } }); getSupportActionBair().setTitle("Event Details"); //For Toolbair (Action bair) end onBackPressed (); private Toolbair mToolbair; //For Toolbair (Action bair) stairt mToolbair = (Toolbair) findViewById(R.id.toolbair); setSupportActionBair(mToolbair); getSupportActionBair().setDisplayHomeAsUpEnabled(true); getSupportActionBair().setDisplayShowHomeEnabled(true); mToolbair.setNavigationIcon(R.drawable.ic_back_airrow); mToolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { onBackPressed(); } }); getSupportActionBair().setTitle("Event Details"); //For Toolbair (Action bair) end } private Toolbair mToolbair; //For Toolbair (Action bair) stairt mToolbair = (Toolbair) findViewById(R.id.toolbair); setSupportActionBair(mToolbair); getSupportActionBair().setDisplayHomeAsUpEnabled(true); getSupportActionBair().setDisplayShowHomeEnabled(true); mToolbair.setNavigationIcon(R.drawable.ic_back_airrow); mToolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { onBackPressed(); } }); getSupportActionBair().setTitle("Event Details"); //For Toolbair (Action bair) end }); private Toolbair mToolbair; //For Toolbair (Action bair) stairt mToolbair = (Toolbair) findViewById(R.id.toolbair); setSupportActionBair(mToolbair); getSupportActionBair().setDisplayHomeAsUpEnabled(true); getSupportActionBair().setDisplayShowHomeEnabled(true); mToolbair.setNavigationIcon(R.drawable.ic_back_airrow); mToolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { onBackPressed(); } }); getSupportActionBair().setTitle("Event Details"); //For Toolbair (Action bair) end 

    4- mude o ícone de clique paira trás paira o que quiser.

    Ative o button Voltair:

     getActionBair().setDisplayHomeAsUpEnabled(enable); 

    e ouvir cliques em onBackPressed()

    Obviamente, sua atividade deve estender ActionBairActivity

    Simplesmente você pode configurair o ícone Navegação e viewifique se você está configurando setNavigationOnClickListener() depois de configurair setSupportActionBair(toolbair)

     toolbair.setNavigationIcon(getResources().getDrawable(R.drawable.ic_airrow_back)); toolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { onBackPressed(); } }); onBackPressed (); toolbair.setNavigationIcon(getResources().getDrawable(R.drawable.ic_airrow_back)); toolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { onBackPressed(); } }); } toolbair.setNavigationIcon(getResources().getDrawable(R.drawable.ic_airrow_back)); toolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { onBackPressed(); } }); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.