[JAVA] [Android] Ich habe versucht, das Koordinatorlayout zu verwenden.

Hallo zusammen. ** Traumtänzer **. Dieses Mal möchte ich über ** Coordinator Layout ** von Android Support Design schreiben.

Einführung

Nach der Ankündigung von Material Design bei GOOGLE vor etwa zwei Jahren wurde es für Entwickler wichtig, auch die Benutzeroberfläche zu entwerfen. Das Koordinatorlayout ist keine grundlegende API, sondern unterstützt DESIGN WIDGET. Hinzugefügt aus SDK 22.2.0.

2017_05_02_15_46_04_959.gif

Quelle: https://material.io/guidelines/patterns/scrolling-techniques.html#scrolling-techniques-behavior

Ich war überrascht, dies zuerst zu sehen. Dieses Mal werde ich einen Bildschirm wie den obigen erstellen.

Die Testumgebung sieht folgendermaßen aus:

software Version
Android Studio 2.3.1
test device 4.4.2
windows 10(64)

Hauptpapier

Neues Projekt

Zunächst möchte ich ein neues Projekt erstellen.

01.PNG

Die linke Seite ist ein Sicherheitsproblem, daher habe ich es gelöscht. Wenn Sie Android Studio öffnen, wird normalerweise dieser Bildschirm angezeigt.

  1. Klicken Sie auf Neues Android Studio-Projekt starten.

02.PNG

  1. Schreiben Sie den Namen und die Domain des Projekts. klicken

  2. Ich beginne immer mit dieser Einstellung. Fühlen Sie sich frei zu wählen. klicken

03.PNG

  1. Wählen Sie Leere Aktivität. klicken

04.PNG

  1. Aktivitätsname frei. .. klicken

05.PNG

Bibliothek hinzugefügt.

Jeder ist ein Android-Meister, also denke ich, dass es einfach ist.

  1. Klicken Sie auf ** build.gradle **, um die Abhängigkeit hinzuzufügen.

build.gragle


    compile 'com.android.support:design:25.3.1'
    compile 'com.android.support:cardview-v7:25.3.1'

07.PNG

2. Sync now

Bis zu diesem Punkt sind die Grundeinstellungen ohne Probleme abgeschlossen.

Dokumentenvorbereitung

Ich mag Keyakizaka im Winter, deshalb habe ich auf die Fotos und den Text auf der folgenden Seite verwiesen.

Winter Illumination at Keyakizaka-dori Street

Bereiten Sie die Fotos und Texte vor, die Sie verwenden möchten.

  1. PASTE.
  2. Fügen Sie das zu verwendende Symbol hinzu.

--drawble Rechtsklick → Neu → Bild Asset.

08.png

--Wählen Sie die Symbole für Aktionsleiste und Registerkarte als Symboltyp.

09.png

10.PNG

11.PNG

12.PNG

In meinem Fall habe ich die Favoriten- und Zugriffszeit verwendet. Fühlen Sie sich frei zu wählen. Zusätzlich zu dieser Methode können Sie mit KOKO! Symbole herunterladen und hinzufügen. Verwenden Sie daher eine bequeme Methode.

Fügen Sie einen String in string.xml hinzu.

Dies ist keine feste Sache, also zögern Sie nicht, sie zu betreten.

string.xml


 <string name="news_title">WINTER ILLUMINATION AT KEYAKIZAKA-DORI STREET</string>
 <string name="cont">In winter, beautiful illumination shines all over the Tokyo.
                     When I see beautiful illumination, I’m excited even though cold 
                     night.Many other illumination events or installation are held at 
                     Roppongi Hills. All of them ends at December 25th.</string>
 <string name="published_date">2017-05-02 12:13:43</string>

Layout Coding

Sie können es mit Java-Datei hinzufügen, aber ich möchte mit XML damit spielen. ..

13.PNG

  1. Klicken Sie auf activity_main.xml.

  2. Erstellen Sie einen Komponentenbaum.

Ich habe das getan, was ich mir als Komponentenbaum vorgestellt habe.

image.png

Diejenigen, die schwer zu sehen sind, können verstehen, indem sie nach unten schauen.

14_01.PNG

  1. Codierung

AppBarLayout-Teil.

activity_main.xml



<android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="350dp"
            android:fitsSystemWindows="true"
            app:expandedTitleTextAppearance="@android:color/transparent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:contentScrim="@color/colorPrimary">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="350dp"
                android:contentDescription="@string/app_name"
                android:scaleType="centerCrop"
                android:src="@drawable/keyaki"
                app:layout_collapseMode="parallax" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/tool_bar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:title="@string/news_title"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light">


            </android.support.v7.widget.Toolbar>

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

Dies ist der NestedScrollView-Teil.

activity_main.xml


<android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="16dp"
            app:cardElevation="5dp"
            app:cardUseCompatPadding="true">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="12dp"
                    android:padding="12dp"
                    android:text="@string/news_title"
                    android:textColor="@color/colorPrimaryText"
                    android:textSize="20sp"
                    android:textStyle="bold" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:padding="12dp">

                    <ImageView
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:contentDescription="@string/app_name"
                        android:src="@drawable/ic_clock" />

                    <TextView
                        android:layout_gravity="center_vertical"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="9"
                        android:padding="12dp"
                        android:text="@string/published_date"
                        android:textColor="@color/colorPrimaryText"
                        android:textSize="14sp"
                        android:textStyle="bold" />

                </LinearLayout>
                <TextView
                    android:layout_gravity="center_vertical"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:lineSpacingMultiplier="1.5"
                    android:layout_marginTop="12dp"
                    android:padding="12dp"
                    android:text="@string/new_cont"
                    android:textSize="13sp"
                    />

            </LinearLayout>


        </android.support.v7.widget.CardView>

    </android.support.v4.widget.NestedScrollView>

FloatingActionButton-Teil.

activity_main.xml



<android.support.design.widget.FloatingActionButton
        app:elevation="6dp"
        android:src="@drawable/ic_fav"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:pressedTranslationZ="12dp"
        app:layout_anchor="@id/app_bar_layout"
        app:layout_anchorGravity="bottom|right"/>

Inflation

MainActivity.java



   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar)findViewById(R.id.tool_bar);
        setSupportActionBar(toolbar);
        if (getSupportActionBar() != null){
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }
    }

Fazit

Ich habe RUN ausprobiert.

2017_05_02_17_11_25_226.gif

erledigt. .. ..

Der Quellcode ist mein Github. https://github.com/JAICHANGPARK/Coordinator-Layout101

Es gibt verschiedene Methoden, aber ich hoffe, Sie finden es hilfreich für diejenigen, die bisher gelesen haben. Beim Erstellen eines Layouts mit XML ist es wichtig, zuerst ** Component Tree ** zu schreiben. Und es ist viel Übung erforderlich.

Danke fürs Lesen. Wir sehen uns im nächsten Beitrag! Ich wünsche Ihnen eine schöne goldene Woche

Dreamwalker。

References

  1. http://coolphotojapan.com/coolphotojapan/category/culture/current/winter-illumination-at-keyakizaka-dori-street
  2. https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.html
  3. https://material.io/guidelines/patterns/scrolling-techniques.html#scrolling-techniques-behavior

Recommended Posts

[Android] Ich habe versucht, das Koordinatorlayout zu verwenden.
Ich habe versucht, Gson zu benutzen
Ich habe versucht, TestNG zu verwenden
Ich habe versucht, Galasa zu benutzen
[Android] Ich habe SQLite beendet und versucht, Realm zu verwenden
Ich habe versucht, Azure Cloud-Init zu verwenden
Ich habe versucht, Apache Wicket zu verwenden
Ich habe versucht, Java REPL zu verwenden
Ich habe jetzt versucht, Anakia + Jing zu verwenden
Ich habe versucht, JOOQ mit Gradle zu verwenden
Ich habe versucht, die Java8 Stream API zu verwenden
Ich habe versucht, Pari GP Container zu verwenden
Ich habe versucht, WebAssembly Stadio (Version 2018/4/17) zu verwenden.
[Android] [Bibliothek] Ich habe versucht, eine Animationsbibliothek namens "Vorher Nachher Animation" zu verwenden.
Ich habe versucht, die CameraX-Bibliothek mit Android Java Fragment zu verwenden
Ich habe versucht, Java Memo LocalDate zu verwenden
Ich habe versucht, Google HttpClient von Java zu verwenden
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Ich habe versucht, Realm mit Swift UI zu verwenden
Ich habe versucht, das Java-Diagnosetool Arthas zu verwenden
Ich habe versucht, UICollectionViewListCell zu verwenden, das von Xcode12 hinzugefügt wurde.
Ich habe versucht, Scalar DL mit Docker zu verwenden
Ich habe versucht, OnlineConverter mit SpringBoot + JODConverter zu verwenden
Es ist neu, aber ich habe versucht, Groonga zu verwenden
Ich habe versucht, OpenCV mit Java + Tomcat zu verwenden
Ich habe versucht, eine einfache Gesichtserkennungs-Android-Anwendung mit OpenCV zu erstellen
Ich habe es mit Spring versucht.
Ich habe versucht, Tomcat zu setzen
Ich habe youtubeDataApi ausprobiert.
Ich habe versucht, ① umzugestalten
Ich habe FizzBuzz ausprobiert.
Ich habe JHipster 5.1 ausprobiert
Ich habe versucht, Junit mit Mac VScode Maven zu verwenden
[Für Anfänger] Ich habe versucht, DBUnit mit Eclipse zu verwenden
[Für Anfänger] Ich habe versucht, JUnit 5 mit Eclipse zu verwenden
Ich habe mit Ruby einen Blackjack gemacht (ich habe versucht, Minitest zu verwenden)
[API] Ich habe versucht, die Postleitzahlensuch-API zu verwenden
Ich habe versucht, einen Server mit Netty zu implementieren
Ich habe versucht, den Profiler von IntelliJ IDEA zu verwenden
Ich habe versucht, "nifty cloud mobile backend" und "Firebase" -Authentifizierung auf Kotlin + Android zu verwenden
[Ich habe es versucht] Spring Tutorial
Ich habe versucht, die Server-Push-Funktion von Servlet 4.0 zu verwenden
Ich habe versucht, Autoware auszuführen
Ich habe versucht, den KMS-Dienst (Key Management Service) von Alibaba Cloud zu verwenden
Ich habe versucht, SQS mit AWS Java SDK zu betreiben
Ich habe sofort QUARKUS ausprobiert
Ich habe versucht, das Migration Toolkit für Anwendungsbinärdateien zu verwenden
Einführung in das Android-Layout
Ich habe versucht, Log4j2 auf einem Java EE-Server zu verwenden
Ich habe Spring Batch ausprobiert
Ich habe versucht, YOLO v4 unter Ubuntu und ROS zu verwenden
Ich habe versucht, node-jt400 (Programme)
Ich habe versucht, die erweiterte for-Anweisung in Java zu verwenden
Ich habe versucht, node-jt400 (ausführen)
Ich habe versucht, ein Aktienchart mit Java (Jsoup) zu kratzen.
Ich habe versucht, node-jt400 (Transaktionen)