Os usuários do seu app precisam conseguir voltar à tela principal com facilidade. Uma maneira simples de fazer isso é oferecer um botão Acima na barra do app para todas as atividades, exceto a principal. Quando o usuário seleciona o botão Para cima, o app navega para a atividade pai.
Esta lição mostra como adicionar um botão Para cima a uma atividade, declarando o pai dela no manifesto e ativando o botão Para cima da barra do app.
O componente de arquitetura de navegação, atualmente na versão Alfa, é outro método de processar a navegação no app. A API pode processar a navegação a partir da tela atual no app quando o usuário clica no botão para cima. Para saber mais, consulte Navigation Architecture Component.
Declarar uma atividade pai
Para que a funcionalidade "Para cima" possa ser usada em uma atividade, é preciso declarar o pai da atividade. Você pode fazer isso no manifesto do app, definindo um atributo android:parentActivityName
.
O atributo android:parentActivityName
foi introduzido no Android 4.1 (API de nível 16). Para oferecer compatibilidade com dispositivos com versões mais antigas do Android, defina um par de nome-valor <meta-data>
, em que o nome é "android.support.PARENT_ACTIVITY"
e o valor é o nome da atividade pai.
Por exemplo, suponha que seu aplicativo tenha uma atividade principal chamada MainActivity
e uma única atividade filha. O código do manifesto a seguir declara as duas atividades e especifica o relacionamento pai/filha:
<application ... > ... <!-- The main/home activity (it has no parent activity) --> <activity android:name="com.example.myfirstapp.MainActivity" ...> ... </activity> <!-- A child of the main activity --> <activity android:name="com.example.myfirstapp.MyChildActivity" android:label="@string/title_activity_child" android:parentActivityName="com.example.myfirstapp.MainActivity" > <!-- Parent activity meta-data to support 4.0 and lower --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.myfirstapp.MainActivity" /> </activity> </application>
Ativar o botão "Para cima"
Para ativar o botão Para cima para uma atividade pai, chame o método setDisplayHomeAsUpEnabled()
da barra do app. Normalmente, isso é feito quando a atividade é criada. Por exemplo, o seguinte método onCreate()
define um Toolbar
como a barra do app para MyChildActivity
, em seguida, ativa o botão Para cima da barra do app:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my_child) // my_child_toolbar is defined in the layout file setSupportActionBar(findViewById(R.id.my_child_toolbar)) // Get a support ActionBar corresponding to this toolbar and enable the Up button supportActionBar?.setDisplayHomeAsUpEnabled(true) }
Java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_child); // my_child_toolbar is defined in the layout file Toolbar myChildToolbar = (Toolbar) findViewById(R.id.my_child_toolbar); setSupportActionBar(myChildToolbar); // Get a support ActionBar corresponding to this toolbar ActionBar ab = getSupportActionBar(); // Enable the Up button ab.setDisplayHomeAsUpEnabled(true); }
Você não precisa capturar a ação no método onOptionsItemSelected()
da atividade.
Em vez disso, esse método precisa chamar a própria superclasse, conforme mostrado em Responder a ações. O método da superclasse responde à seleção de Para cima navegando para a atividade pai, conforme especificado no manifesto do app.