Pertanyaan Apa itu CoordinatorLayout?


Baru saja melihat aplikasi demo pustaka desain dukungan Android baru. Ini disediakan oleh Chris Banes github. Mengabaikan aplikasi, CoordinatorLayout digunakan dengan berat. Juga, banyak kelas desain dukungan perpustakaan seperti FloatingActionButton, SnackBar, AppBarLayout dll. berperilaku berbeda ketika digunakan di dalam CoordinatorLayout.

Bisakah seseorang memberi penjelasan tentang apa itu CoordinatorLayout dan bagaimana itu berbeda dari yang lain ViewGroups di android, atau setidaknya memberikan jalan yang benar menuju pembelajaran CoordinatorLayout.


76
2018-05-29 18:35


asal


Jawaban:


Ini dia yang Anda cari.

dari dokumen

perpustakaan Desain memperkenalkan CoordinatorLayout, tata letak yang memberikan tingkat kontrol tambahan atas peristiwa sentuh antara tampilan anak, sesuatu yang banyak komponen dalam pustaka Desain manfaatkan.

https://android-developers.googleblog.com/2015/05/android-design-support-library.html

di tautan ini Anda akan melihat video demo dari semua pandangan yang disebutkan di atas.

semoga ini membantu :)


33
2018-05-29 19:37



Apa itu CoordinatorLayout? Jangan biarkan nama keren membodohi Anda, itu tidak lebih dari FrameLayout pada steroid

Untuk memahami apa a CoordinatorLayout adalah / apakah, pertama-tama Anda harus memahami / mengingat apa artinya Koordinasi.

Jika Anda Google kata

Koordinat

Ini yang kau dapat:

enter image description here

Saya pikir definisi ini membantu untuk menggambarkan apa yang CoordinatorLayout lakukan sendiri dan bagaimana pandangan di dalamnya berperilaku.

CoordinatorLayout (a ViewGroup) membawa elemen yang berbeda (tampilan anak) dari (̶a̶ ̶c̶o̶m̶p̶l̶e̶x̶ ̶a̶c̶t̶i̶v̶i̶t̶y̶ ̶o̶r̶ ̶a̶n̶ ̶o̶r̶g̶a̶n̶i̶z̶a̶t̶i̶o̶n̶) ̶ tata letak menjadi hubungan yang harmonis atau efisien:

Dengan bantuan CoordinatorLayout, pandangan anak bekerja sama secara harmonis untuk menerapkan perilaku mengagumkan seperti

menyeret, gesekan, flings, atau gerakan lainnya.

Tampilan di dalam CoordinatorLayout bernegosiasi dengan orang lain untuk bekerja bersama secara efektif dengan menentukan ini Perilaku

CoordinatorLayout adalah fitur Desain Material super keren yang membantu menciptakan tata letak yang menarik dan harmonis.

Yang harus Anda lakukan adalah membungkus pandangan anak Anda di dalam CoordinatorLayout.

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout        
 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"
 android:fitsSystemWindows="true"
 tools:context="com.byte64.coordinatorlayoutexample.ScollingActivity">

 <android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/app_bar_height"
    android:fitsSystemWindows="true"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">



        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/AppTheme.PopupOverlay" />
        <TableLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

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

<include layout="@layout/content_scolling" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/fab_margin"
    app:layout_anchor="@id/app_bar"
    app:layout_anchorGravity="bottom|end"
    app:srcCompat="@android:drawable/ic_dialog_email" />

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

dan content_scrolling:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView     
 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"
 app:layout_behavior="@string/appbar_scrolling_view_behavior"
 tools:context="com.byte64.coordinatorlayoutexample.ScollingActivity"
 tools:showIn="@layout/activity_scolling">

 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/text_margin"
    android:text="@string/large_text" />

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

Apa ini memberi kita adalah tata letak yang dapat digulir untuk meruntuhkan Toolbar dan menyembunyikan FloatingActionButton

Buka:

enter image description here

Tutup:

enter image description here


17
2018-01-26 19:33



Poin tambahan untuk dicatat. Karena OP secara khusus bertanya

Juga, banyak dari kelas libabry desain dukungan suka   FloatingActionButton, SnackBar, AppBarLayout, dll. Berperilaku berbeda   saat digunakan di dalam CoordinatorLayout.

Dan saya kira itu karena ini.

CoordinatorLayout adalah FrameLayout bertenaga super.

Tombol FAB, SnackBar bekerja pada konsep FrameLayout, dan karena CoordinatorLayout sendiri memiliki fungsi FrameLayout, itu mungkin membuat pandangan lain untuk berperilaku berbeda !.


11
2017-07-02 11:35



CoordinatorLayout Pada dasarnya tata letak bingkai dengan banyak kemampuan yang jelas dari namanya, mengotomatisasi koordinasi di antara anak-anaknya dan membantu membangun pemandangan yang indah. Implementasinya dapat dilihat di Aplikasi Google Play Store. Bagaimana bilah alat runtuh dan berubah warna.

Hal terbaik tentangnya CoordinatorLayoutadalah perilaku yang kita berikan kepada keturunan langsung atau tidak langsung. Anda harus telah melihat sambil menggulir semua UI bergerak. Sangat mungkin perilaku ini bekerja sihirnya.


7
2018-06-23 06:10



Untuk memberikan snapshot cepat tentang apa yang bermanfaat di Dokumentasi Android :

Gunakan CoordinatorLayout untuk hanya mengontrol perilaku relasional dari pandangan Anda,

Misalnya jika Anda ingin ToolBar Anda runtuh atau disembunyikan. Google membuatnya sangat mudah dengan memperkenalkan AppBarLayout & CollapsingToolbarLayout, yang keduanya bekerja paling baik di bawah CoordinatorLayout.

Situasi lain yang paling sering digunakan adalah ketika Anda menginginkan FloatingActionButton untuk menempel di bagian bawah CollapsingToolbar Anda dan berpindah-pindah dengannya, menempatkannya di bawah koordinatorLayar dan penggunaan app:layout_anchor="@id/YourAppBarId" untuk lem (!) dan app:layout_anchorGravity="bottom|end" karena posisi akan cukup bagi Anda untuk melihat karya sulap!

Dengan menggunakan tata letak ini sebagai konteks, pandangan anak akan memiliki kolaborasi yang lebih baik dan berperilaku dengan cara yang cerdas karena mereka akan menyadari satu sama lain melalui konteks CoordinatorLayout, ini berarti tombol FloatingAction Anda tidak akan lagi tumpang tindih oleh snackBar dll.

ini hanyalah ringkasan singkat dari bagian-bagian yang paling berguna, jadi jika Anda ingin menghemat lebih banyak waktu dalam menjiwai aplikasi Anda, akan sangat berguna untuk memiliki sedikit lebih banyak penyelaman dalam subjek.

lihat Template aktivitas tampilan Google Scrolling


5
2017-08-23 06:29