[JAVA] Comment revenir à l'écran précédent par opération Swipe

introduction

ça fait longtemps. Cette fois, je voudrais expliquer SwipeBack. L'iPhone a cette fonctionnalité dans le navigateur par défaut, mais pas Android. Sur Android, il est normal d'appuyer sur le "bouton retour" en bas à gauche pour revenir à l'écran précédent, mais il est implémenté dans des applications telles que Gnocy et Smart News. Depuis que je crée une application de système d'information, lorsque je l'ai implémentée, j'ai senti qu'il serait plus pratique de revenir en arrière, j'ai donc écrit un article. Je publierai l'URL de ce à quoi il ressemble réellement, donc si vous ne le savez pas, veuillez le vérifier. https://media.giphy.com/media/3dcKwpfcH50vAITwWy/giphy.gif

En premier

Ouvrez build.gradle (Module: app) dans les scripts Gradle

build.gradle



//Partie supérieure omise

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'

//Ajouter ici
    implementation 'com.r0adkll:slidableactivity:2.0.6'


    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

Veuillez ajouter cette partie. Si vous ne l'ajoutez pas en premier, vous ne pourrez pas utiliser ** l'interface Slider ** que vous utiliserez plus tard, alors assurez-vous de l'ajouter. Je comprends les bases! !! Si vous êtes intéressé, veuillez vérifier à partir de STEP3.

ÉTAPE 1 Placez un bouton dans MainActivity

activity_main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/openActivity2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="Onclick"
        android:text="Open Activity 2"
        tools:ignore="OnClick" />
</LinearLayout>

image.png LinearLayout est une mise en page organisée sur une ligne horizontale ou une ligne verticale. Button place le bouton.

ÉTAPE2 Créer une autre activité

Créez une autre activité. Nommez-le activity_one.xml.

activity_one.xml


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ActivityOne">
    <ImageView
        android:src="@drawable/another_activity_img"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>

ImageView organise l'image pour vous. Dans ce cas, l'image rouge que vous avez créée vous-même sera affichée. image.png

Je suis prêt. Allons-y ensuite.

ÉTAPE3 Modification de MainActivity et ActivityOne

Activez le bouton dans MainActivity.

ActivityMain.java


import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn = findViewById(R.id.openActivity2);
        btn.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this, ActivityOne.class);
        startActivity(intent);
    }
}

En activant ** OnClick **, l'écran passera à l'activité 1. Pour l'expliquer très simplement, vous pouvez passer de l'écran actuel à un autre écran en utilisant ** Intent **. Si vous n'êtes pas sûr du traitement des intentions, veuillez vous reporter ici.

https://techacademy.jp/magazine/2719

Vient ensuite l'édition de la première activité.

ActivityOne.java


import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class ActivityOne extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_one);
    }
}

Vous avez maintenant une transition d'écran simple.

Voici l'explication. Dans "Introduction" implementation 'com.r0adkll:slidableactivity:2.0.6' En ajoutant, vous pouvez utiliser une classe appelée SliderInterface. Je vais le décrire dans ActivityOne.

ActivityOne.java


import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.transition.Slide;
import android.view.View;

import com.r0adkll.slidr.Slidr;
import com.r0adkll.slidr.model.SlidrInterface;


public class ActivityOne extends AppCompatActivity {
//Ajouter ici
    private SlidrInterface slidr;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_one);
//Ajouter ici
        slidr = Slidr.attach(this);
    }
}

ÉTAPE 4 Modifier styles.xml et manifest.xml

styles.xml


<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
//Ajouter à partir d'ici
    <style name="AppTheme.SlidrActivityTheme" parent="AppTheme">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
    </style>
</resources>

Enfin, modifiez manifests.xml et vous avez terminé.

manimests.xml


<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ActivityOne"
            android:theme="@style/AppTheme.SlidrActivityTheme"/> 

    </application>

Ajoutez le thème SliderActivityTheme créé précédemment à **. ActivityOne ** et vous avez terminé.

slidr = Slidr.attach(this);

Je ne pouvais pas bien expliquer cette partie. Si quelqu'un sait, veuillez commenter. Plus tard, j'aimerais publier la source sur github.

L'URL du site à laquelle j'ai fait référence cette fois https://www.youtube.com/watch?v=h-74bLrng2M

C'était facile à comprendre car il a été réalisé en suivant la procédure avec une vidéo.

Recommended Posts

Comment revenir à l'écran précédent par opération Swipe
Comment passer à l'écran des détails en cliquant sur l'image
Je veux revenir à l'écran précédent avec kotlin et java!
Comment passer la valeur à un autre écran
[Rails] Comment décider de la destination par "voies ferrées"
[Android Studio] [Java] Comment réparer l'écran verticalement
9 Correspond à la valeur de retour
Comment utiliser le retour Ruby
Comment changer dynamiquement le nom de la colonne acquis par MyBatis
Comment connecter les chaînes de la liste séparées par des virgules
Git Manière simple de revenir à l'état avant le changement (avant la validation)
[Rails] Comment afficher une liste de messages par catégorie
Comment utiliser la méthode link_to
Comment utiliser la méthode include?
Comment utiliser la méthode form_with
Comment trouver l'angle moyen
[Rails] Comment empêcher la transition d'écran
Comment utiliser la classe wrapper
Comment créer un écran de démarrage
Comment ajouter la fonction de suppression
[Rails 5] Comment afficher l'écran de changement de mot de passe lors de l'utilisation de l'appareil
Comment renvoyer une valeur du modèle au contrôleur en utilisant le protocole [Swift5]
Comment faire de https le schéma de l'URL générée par l'assistant d'URL de Rails
Comment éviter le traitement en double par addEventListener
[Java] Comment utiliser la classe File
Comment désactiver le regroupement d'erreurs
[Rails] Comment utiliser la méthode de la carte
[Java] Comment utiliser la méthode toString ()
Etudier comment utiliser le constructeur (java)
[Traitement × Java] Comment utiliser la boucle
Comment déterminer le nombre de parallèles
Comment sortir une chaîne Java sur l'écran de la console
[Java] Comment régler la date sur 00:00:00
[Java] Comment obtenir le répertoire actuel
Comment le site Web s'affiche à l'écran
[Traitement × Java] Comment utiliser la classe
Comment trier une liste de SelectItems
Comment trouver les dizaines et les unités
Comment obtenir la date avec Java
[Swift5] Comment créer un écran de démarrage
[Traitement × Java] Comment utiliser la fonction
[Java] Comment utiliser la classe Calendar
Résumé de la façon de monter les escaliers de programmation
[Rails] Comment lire le fichier XML téléchargé depuis l'écran en type Hash
[Rails6] Comment connecter la fonction d'affichage générée par Scaffold avec la fonction utilisateur générée par devise
Comment afficher la quantité de disque utilisée par le conteneur Docker pour chaque conteneur