ฉันจะเพิ่ม“ Floating Action Button” ใหม่ระหว่างสองวิดเจ็ต / เลย์เอาต์ได้อย่างไร


287

ฉันเดาว่าคุณเคยเห็นแนวทางการออกแบบ Android ใหม่พร้อมกับ "Floating Action Button" หรือ "FAB"

เช่นปุ่มสีชมพูนี้:

ป้อนคำอธิบายรูปภาพที่นี่

คำถามของฉันฟังดูโง่และฉันลองมาหลายอย่างแล้ว แต่วิธีที่ดีที่สุดที่จะวางปุ่มนี้ที่จุดตัดของสองเลย์เอาต์คืออะไร?

ในตัวอย่างด้านบนปุ่มนี้อยู่ระหว่างสิ่งที่เราสามารถจินตนาการได้ว่าเป็น ImageView และญาติเลย์เอาต์

ฉันได้ลองปรับแต่งมาแล้วมากมาย แต่ฉันเชื่อว่ามีวิธีที่เหมาะสมในการทำเช่นนั้น


คุณสามารถวางตำแหน่งเค้าโครงภายในเค้าโครงและวางตำแหน่งปุ่มบนเค้าโครงนั้น
Chrome Penguin Studios

1
ฉันคิดว่าห้องสมุดนี้สามารถช่วยเหลือคุณได้มาก: github.com/ksoichiro/Android-ObservableScrollView
นักพัฒนา Android

วิธีการซ่อนมันในขณะที่เลื่อน? ฉันกำลังเผชิญกับปัญหาซึ่งถ้าฉันเลื่อนหน้าเพจ fab ยังคงอยู่ด้านบนและไม่ซ่อน! กรุณาช่วย
Anish Kumar

คำตอบ:


473

ปฏิบัติที่ดีที่สุด:

  • เพิ่มcompile 'com.android.support:design:25.0.1'ลงในไฟล์ gradle
  • ใช้CoordinatorLayoutเป็นมุมมองรูต
  • เพิ่มlayout_anchorไปที่ FAB และตั้งค่าเป็นมุมมองด้านบน
  • เพิ่มlayout_anchorGravityไปที่ FAB และตั้งค่าเป็น:bottom|right|end

ป้อนคำอธิบายรูปภาพที่นี่

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

        <LinearLayout
            android:id="@+id/viewA"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="0.6"
            android:background="@android:color/holo_purple"
            android:orientation="horizontal"/>

        <LinearLayout
            android:id="@+id/viewB"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="0.4"
            android:background="@android:color/holo_orange_light"
            android:orientation="horizontal"/>

    </LinearLayout>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:clickable="true"
        android:src="@drawable/ic_done"
        app:layout_anchor="@id/viewA"
        app:layout_anchorGravity="bottom|right|end"/>

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

3
@Aprendiz ฉันต้องการการอ้างอิงด้วย แต่ฉันเห็นได้ว่าทำไมคำตอบนี้ดีกว่าของ HughJeffner ฉันคิดว่ามันง่ายกว่ายืดหยุ่นกว่าและแฮ็คน้อยกว่า คุณไม่ได้ hardcode ใด ๆ layout_height หรือค่ามาร์จิ้นซึ่งอาจแตกต่างกันในเวลาหรือถูกกำหนดแบบไดนามิก คำตอบของฮิวจ์สามารถทำงานในกรณีบางอย่างง่ายและบางทีอาจจะเป็นวิธีแก้ปัญหาสำหรับบางห้องสมุดของบุคคลที่สามที่ไม่สนับสนุนอย่างเต็มที่CoordinatorLayoutและlayout_anchorและlayout_anchorGravityคุณสมบัติอย่างหนึ่งที่เขาใช้futuresimples
acrespo

1
Btw futuresimplesเป็นห้องสมุดที่น่ากลัวและในกรณีที่มีคนสงสัยว่ามีส้อมที่รวมนี้CoordinatorLayoutวิธีการที่มีที่ห้องสมุดดู และยังมีทางแยกสำหรับเวอร์ชั่นเก่า
acrespo

2
ฉันกำลังมองหาสิ่งนี้ +1 เพื่อความง่าย
Emiliano De Santis

29
เหตุใดจึงไม่ทั้งหมดในเอกสารประกอบของ Android
Mostafa

3
การใช้แอพ: layout_anchor ทำให้ฉันมีปัญหาในการเรนเดอร์ (linearlayout layoutparams ไม่สามารถส่งไปยังผู้ประสานงานการเลย์เอาต์ :(
DAVIDBALAS1

91

ดูเหมือนว่าวิธีที่สะอาดที่สุดในตัวอย่างนี้คือ:

  • ใช้ RelativeLayout
  • วางตำแหน่งมุมมองที่อยู่ติดกัน 2 มุมมองหนึ่งมุมด้านล่าง
  • จัดแนว FAB ให้ตรงกับขวา / สิ้นสุดของพาเรนต์และเพิ่มระยะขอบขวา / สิ้นสุด
  • จัด FAB ให้ตรงกับด้านล่างของมุมมองส่วนหัวและเพิ่มระยะขอบลบครึ่งขนาดของ FAB รวมถึงเงา

ตัวอย่างที่ดัดแปลงมาจากการใช้ shamanland ใช้ FAB ที่คุณต้องการ สมมติว่า FAB สูง 64dp รวมถึงเงา:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <View
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="120dp"
    />

    <View
        android:id="@+id/body"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/header"
    />

    <fully.qualified.name.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignBottom="@id/header"
        android:layout_marginBottom="-32dp"
        android:layout_marginRight="20dp"
    />

</RelativeLayout>

ตัวอย่างเค้าโครง FAB


เลย์เอาต์นี้มีเล่ห์เหลี่ยมสำหรับฉัน! ฉันใช้งานFABโดยfuturesimple - เพิ่มและใช้งานง่ายสนุก!
Roman

เช่นเดียวกับที่คุณพูดว่า "วางตำแหน่งมุมมองที่อยู่ติดกัน 2 ตำแหน่งด้านล่างอีกมุมมอง" -> นี่เป็นปัญหาที่ฉันได้รับฉันมองข้ามว่า "รูปแบบคอนเทนเนอร์" ของฉันถูกทำให้ยุ่งเหยิงโดยวงเล็บไม่ตรงกัน: D ขอบคุณ: P
Martin Pfeffer

นี่ไม่ใช่ทางออกที่ดี ระยะขอบลบดูเหมือนว่าจะกำจัดครึ่งล่างของเป้าหมายการสัมผัสของปุ่ม การคลิกไม่ได้รับการลงทะเบียนหากฉันกดครึ่งล่างของ fab
Doronz

1
@ Doronz อืมฉันดูเหมือนจะไม่มีปัญหานั้น มุมมองของคุณในลำดับที่ถูกต้องคือ FAB เป็นเลเยอร์บนสุดหรือไม่
Hugh Jeffner

23
Android: layout_marginBottom = "- 32dp" ค่า hardcoded ด้วย wrap_content ของปุ่มเป็นวิธีแก้ปัญหาที่ไม่ดี
Lester

51

คุณสามารถนำเข้าโครงการตัวอย่างของ Google ใน Android Studio โดยคลิกไฟล์> นำเข้าตัวอย่าง ...

นำเข้าตัวอย่าง

ตัวอย่างนี้มีมุมมอง FloatingActionButton ซึ่งสืบทอดมาจาก FrameLayout

แก้ไข ด้วย Library Design Support ใหม่คุณสามารถใช้มันได้ในตัวอย่างนี้: https://github.com/chrisbanes/cheesesquare


1
คุณควรมี android-21 เพื่อใช้งาน
Yuliia Ashomok

คุณควรใช้ Support Design Library หากคุณต้องการใช้ FloatingActionButton ดู cheesesquare ของ Google
Roel

16

ด้วย AppCompat 22 FAB ได้รับการสนับสนุนสำหรับอุปกรณ์รุ่นเก่า

เพิ่มไลบรารีการสนับสนุนใหม่ใน build.gradle (แอป) ของคุณ:

compile 'com.android.support:design:22.2.0'

จากนั้นคุณสามารถใช้มันใน xml ของคุณ:

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:src="@android:drawable/ic_menu_more"
    app:elevation="6dp"
    app:pressedTranslationZ="12dp" />

ในการใช้elevationและpressedTranslationZคุณสมบัติappจำเป็นต้องใช้เนมสเปซดังนั้นให้เพิ่มเนมสเปซนี้ในการออกแบบ xmlns:app="http://schemas.android.com/apk/res-auto"


3
เพิ่มข้อมูลเกี่ยวกับappnamespace
Lukasz 'Severiaan' Grela

14

ตอนนี้มันเป็นส่วนหนึ่งของห้องสมุดสนับสนุนการออกแบบอย่างเป็นทางการ

ในระดับของคุณ:

compile 'com.android.support:design:22.2.0'

http://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html


5
คำตอบของคุณค่อนข้างไม่ชัดเจนและคลุมเครือคุณสามารถอธิบายเพิ่มเติมว่าส่วนใดของ DSL และอาจอ้างอิงข้อมูลที่เกี่ยวข้องจากหน้านั้น
SuperBiasedMan

ขออภัยฉันเห็นการอ้างอิงถึงไลบรารีภายนอกจำนวนมากดังนั้นฉันจึงต้องการชี้ไปที่ห้องสมุดทางการ ไลบรารีสามารถสร้างปุ่มได้เท่านั้น แต่การวางตำแหน่งนั้นอยู่ที่นักพัฒนาซอฟต์แวร์ ดังนั้นโพสต์ของฉันจึงไม่เกี่ยวข้องมากขอโทษ
Veronnie

12

ลองใช้ไลบรารีนี้ ( javadoc อยู่ที่นี่ ) ระดับต่ำสุดของ API คือ 7:

dependencies {
    compile 'com.shamanland:fab:0.0.8'
}

มันมีเครื่องมือเดียวที่มีความสามารถในการปรับแต่งมันผ่าน Theme, xml หรือ java-code

เบา ระหว่าง

มันใช้ง่ายมาก มีnormalและminiดำเนินการตามรูปแบบการกระทำที่ได้รับการส่งเสริม

<com.shamanland.fab.FloatingActionButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_action_my"
    app:floatingActionButtonColor="@color/my_fab_color"
    app:floatingActionButtonSize="mini"
    />

พยายามที่จะรวบรวมแอพพลิเคสาธิต มีตัวอย่างที่ครบถ้วนสมบูรณ์คือแสงและสีรูปแบบที่ใช้กับListView, ชิดระหว่างสองชม


3
เพียงเพื่อเพิ่มคำตอบนี้ ^ นอกจากนี้คุณยังสามารถใช้ห้องสมุดอื่น ๆ ที่มีอยู่เช่นย้ายกลับ: github.com/FaizMalkani/FloatingActionButtonและgithub.com/makovkastar/FloatingActionButton ทั้งสองอย่างนี้อาจดูเหมือนจะได้รับการสนับสนุนเพิ่มเติม แต่เพียงทำตามมุมมองรายละเอียดจากแหล่งที่ระบุไว้ในคำตอบนี้ ใช้งานได้ดี
John Shelley

เป็นห้องสมุดทางการหรือไม่
Cocorico

ไม่มีห้องสมุดอย่างเป็นทางการ อันนี้เป็น lib ของฉันกับโอเพนซอร์ส
Oleksii K.

ปุ่มการกระทำลอยตัวนี้เป็นตัวอย่างที่ไม่ดีในการใช้งาน ไม่ปฏิบัติตามแนวทางการออกแบบวัสดุที่แท้จริง
Michael

@ ไมค์มิลล่ามีอะไรผิดปกติกับ lib นี้ไหม ข้อกำหนดใดไม่เป็นที่พอใจ
Oleksii K.

9

นี่คือหนึ่งใน aditional ฟรีFloating การกระทำห้องสมุดปุ่มสำหรับ Android มีการปรับแต่งมากมายและต้องใช้ SDK เวอร์ชัน 9 ขึ้นไป

ป้อนคำอธิบายรูปภาพที่นี่

วิดีโอสาธิตเต็มรูปแบบ

dependencies {
    compile 'com.scalified:fab:1.1.2'
}

3
คำถามไม่ใช่ว่าคุณจะใช้ FAB ได้อย่างไร แต่คุณจะวางตำแหน่งอย่างไรเพื่อให้เลาะเลียบสอง Views ถอนหายใจ
Scott Biggs

6

ทำให้มันง่ายมากการเพิ่มปุ่มการกระทำลอยตัวโดยใช้ TextView โดยให้พื้นหลังเป็น xml แบบกลม - เพิ่มคอมไพล์com.android.support:design:23.1.1ไฟล์ gradle

  • ใช้ CoordinatorLayout เป็นมุมมองรูท
  • ก่อนที่จะสิ้นสุด CoordinatorLayout แนะนำ textView
  • ภายใน Drawable วาดวงกลม

Circle Xml คือ

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

    <solid
        android:color="@color/colorPrimary"/>
    <size
        android:width="30dp"
        android:height="30dp"/>
</shape>

เลย์เอาต์ xml คือ

<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


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

    <RelativeLayout
        android:id="@+id/viewA"
        android:layout_height="0dp"
        android:layout_width="match_parent"
        android:layout_weight="1.6"
        android:background="@drawable/contact_bg"
        android:gravity="center_horizontal|center_vertical"
        >
        </RelativeLayout>

    <LinearLayout
        android:layout_height="0dp"
        android:layout_width="match_parent"
        android:layout_weight="3.4"
        android:orientation="vertical"
        android:padding="16dp"
        android:weightSum="10"
        >

        <LinearLayout
            android:layout_height="0dp"
            android:layout_width="match_parent"
            android:layout_weight="1"
            >
            </LinearLayout>

        <LinearLayout
            android:layout_height="0dp"
            android:layout_width="match_parent"
            android:layout_weight="1"
            android:weightSum="4"
            android:orientation="horizontal"
            >
            <TextView
                android:layout_height="match_parent"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:text="Name"
                android:textSize="22dp"
                android:textColor="@android:color/black"
                android:padding="3dp"
                />

            <TextView
                android:id="@+id/name"
                android:layout_height="match_parent"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:text="Ritesh Kumar Singh"
                android:singleLine="true"
                android:textSize="22dp"
                android:textColor="@android:color/black"
                android:padding="3dp"
                />

            </LinearLayout>



        <LinearLayout
            android:layout_height="0dp"
            android:layout_width="match_parent"
            android:layout_weight="1"
            android:weightSum="4"
            android:orientation="horizontal"
            >
            <TextView
                android:layout_height="match_parent"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:text="Phone"
                android:textSize="22dp"
                android:textColor="@android:color/black"
                android:padding="3dp"
                />

            <TextView
                android:id="@+id/number"
                android:layout_height="match_parent"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:text="8283001122"
                android:textSize="22dp"
                android:textColor="@android:color/black"
                android:singleLine="true"
                android:padding="3dp"
                />

        </LinearLayout>



        <LinearLayout
            android:layout_height="0dp"
            android:layout_width="match_parent"
            android:layout_weight="1"
            android:weightSum="4"
            android:orientation="horizontal"
            >
            <TextView
                android:layout_height="match_parent"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:text="Email"
                android:textSize="22dp"
                android:textColor="@android:color/black"
                android:padding="3dp"
                />

            <TextView
                android:layout_height="match_parent"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:text="ritesh.singh@betasoftsystems.com"
                android:textSize="22dp"
                android:singleLine="true"
                android:textColor="@android:color/black"
                android:padding="3dp"
                />

        </LinearLayout>


        <LinearLayout
            android:layout_height="0dp"
            android:layout_width="match_parent"
            android:layout_weight="1"
            android:weightSum="4"
            android:orientation="horizontal"
            >
            <TextView
                android:layout_height="match_parent"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:text="City"
                android:textSize="22dp"
                android:textColor="@android:color/black"
                android:padding="3dp"
                />

            <TextView
                android:layout_height="match_parent"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:text="Panchkula"
                android:textSize="22dp"
                android:textColor="@android:color/black"
                android:singleLine="true"
                android:padding="3dp"
                />

        </LinearLayout>

    </LinearLayout>

</LinearLayout>


    <TextView
        android:id="@+id/floating"
        android:transitionName="@string/transition_name_circle"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_margin="16dp"
        android:clickable="false"
        android:background="@drawable/circle"
        android:elevation="10dp"
        android:text="R"
        android:textSize="40dp"
        android:gravity="center"
        android:textColor="@android:color/black"
        app:layout_anchor="@id/viewA"
        app:layout_anchorGravity="bottom"/>

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

คลิกที่นี่เพื่อดูว่ามันจะเป็นอย่างไร


5

เพิ่มลงในไฟล์ gradle ของคุณ

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.android.support:design:23.0.1'
}

นี่คือกิจกรรมของคุณ _main.xml

<android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

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

            <LinearLayout
                android:id="@+id/viewOne"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="0.6"
                android:background="@android:color/holo_blue_light"
                android:orientation="horizontal"/>

            <LinearLayout
                android:id="@+id/viewTwo"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="0.4"
                android:background="@android:color/holo_orange_light"
                android:orientation="horizontal"/>

        </LinearLayout>

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/floatingButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="16dp"
            android:clickable="true"
            android:src="@drawable/ic_done"
            app:layout_anchor="@id/viewOne"
            app:layout_anchorGravity="bottom|right|end"
            app:backgroundTint="#FF0000"
            app:rippleColor="#FFF" />

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

คุณสามารถค้นหาตัวอย่างเต็มรูปแบบกับโครงการ android studio เพื่อดาวน์โหลดได้ที่http://www.ahotbrew.com/android-floating-action-button/


1

นี่คือรหัสการทำงาน

ฉันใช้ appBarLayout เพื่อยึด floatingActionButton ของฉัน หวังว่านี่อาจเป็นประโยชน์

รหัส XML

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_height="192dp"
        android:layout_width="match_parent">

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

            <android.support.v7.widget.Toolbar
                app:layout_collapseMode="pin"
                android:id="@+id/toolbarItemDetailsView"
                android:layout_height="?attr/actionBarSize"
                android:layout_width="match_parent"></android.support.v7.widget.Toolbar>
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior">

        <android.support.constraint.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context="com.example.rktech.myshoplist.Item_details_views">
            <RelativeLayout
                android:orientation="vertical"
                android:focusableInTouchMode="true"
                android:layout_width="match_parent"
                android:layout_height="match_parent">


                <!--Put Image here -->
                <ImageView
                    android:visibility="gone"
                    android:layout_marginTop="56dp"
                    android:layout_width="match_parent"
                    android:layout_height="230dp"
                    android:scaleType="centerCrop"
                    android:src="@drawable/third" />


                <ScrollView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                    <RelativeLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:orientation="vertical">

                        <android.support.v7.widget.CardView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            app:cardCornerRadius="4dp"
                            app:cardElevation="4dp"
                            app:cardMaxElevation="6dp"
                            app:cardUseCompatPadding="true">

                            <RelativeLayout
                                android:layout_width="match_parent"
                                android:layout_height="match_parent"
                                android:layout_margin="8dp"
                                android:padding="3dp">


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


                                    <TextView
                                        android:id="@+id/txtDetailItemTitle"
                                        style="@style/TextAppearance.AppCompat.Title"
                                        android:layout_width="match_parent"
                                        android:layout_height="wrap_content"
                                        android:layout_marginLeft="4dp"
                                        android:text="Title" />

                                    <LinearLayout
                                        android:layout_width="match_parent"
                                        android:layout_height="match_parent"
                                        android:layout_marginTop="8dp"
                                        android:orientation="horizontal">

                                        <TextView
                                            android:id="@+id/txtDetailItemSeller"
                                            style="@style/TextAppearance.AppCompat.Subhead"
                                            android:layout_width="wrap_content"
                                            android:layout_height="wrap_content"
                                            android:layout_marginLeft="4dp"
                                            android:layout_weight="1"
                                            android:text="Shope Name" />

                                        <TextView
                                            android:id="@+id/txtDetailItemDate"
                                            style="@style/TextAppearance.AppCompat.Subhead"
                                            android:layout_width="wrap_content"
                                            android:layout_height="wrap_content"
                                            android:layout_marginRight="4dp"
                                            android:gravity="right"
                                            android:text="Date" />


                                    </LinearLayout>

                                    <TextView
                                        android:id="@+id/txtDetailItemDescription"
                                        style="@style/TextAppearance.AppCompat.Medium"
                                        android:layout_width="match_parent"
                                        android:minLines="5"
                                        android:layout_height="wrap_content"
                                        android:layout_marginLeft="4dp"
                                        android:layout_marginTop="16dp"
                                        android:text="description" />

                                    <LinearLayout
                                        android:layout_width="match_parent"
                                        android:layout_height="wrap_content"
                                        android:layout_marginBottom="8dp"
                                        android:orientation="horizontal">

                                        <TextView
                                            android:id="@+id/txtDetailItemQty"
                                            style="@style/TextAppearance.AppCompat.Medium"
                                            android:layout_width="wrap_content"
                                            android:layout_height="wrap_content"
                                            android:layout_marginLeft="4dp"
                                            android:layout_weight="1"
                                            android:text="Qunatity" />

                                        <TextView
                                            android:id="@+id/txtDetailItemMessure"
                                            style="@style/TextAppearance.AppCompat.Medium"
                                            android:layout_width="wrap_content"
                                            android:layout_height="wrap_content"
                                            android:layout_marginRight="4dp"
                                            android:layout_weight="1"
                                            android:gravity="right"
                                            android:text="Messure in Gram" />
                                    </LinearLayout>


                                    <TextView
                                        android:id="@+id/txtDetailItemPrice"
                                        style="@style/TextAppearance.AppCompat.Headline"
                                        android:layout_width="match_parent"
                                        android:layout_height="wrap_content"
                                        android:layout_marginRight="4dp"
                                        android:layout_weight="1"
                                        android:gravity="right"
                                        android:text="Price" />
                                </LinearLayout>

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

        </android.support.constraint.ConstraintLayout>

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

    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        app:layout_anchor="@id/appbar"
        app:fabSize="normal"
        app:layout_anchorGravity="bottom|right|end"
        android:layout_marginEnd="@dimen/_6sdp"
        android:src="@drawable/ic_done_black_24dp"
        android:layout_height="wrap_content" />

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

ตอนนี้ถ้าคุณวางโค้ดด้านบน คุณจะเห็นผลลัพธ์ต่อไปนี้บนอุปกรณ์ของคุณ รูปภาพผลลัพธ์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.