Browse Source

@task: poc ui

bai 3 years ago
parent
commit
5070797956

+ 41 - 54
demo/src/main/AndroidManifest.xml

@@ -1,64 +1,51 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ *********************************************************************************************************************
-  ~
-  ~               iFHS7.
-  ~              ;BBMBMBMc                  rZMBMBR              BMB
-  ~              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
-  ~     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
-  ~     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
-  ~      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
-  ~     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
-  ~     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
-  ~     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
-  ~         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
-  ~     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
-  ~      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
-  ~         i0BM: SWKHKGO  MBDv
-  ~           .UB  OOGDM. MK,                                          Copyright (c) 2015-2019.  斯伯坦机器人
-  ~              ,  XMW  ..
-  ~                  r                                                                     All rights reserved.
-  ~
-  ~ *********************************************************************************************************************
-  -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          xmlns:tools="http://schemas.android.com/tools" package="com.sybotan.android.demo">
+    xmlns:tools="http://schemas.android.com/tools"
+    package="com.sybotan.android.demo">
 
-  <uses-permission android:name="android.permission.INTERNET"/>
-  <uses-permission android:name="android.permission.BLUETOOTH"/>
-  <!-- SD卡中创建与删除文件权限 -->
-  <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" tools:ignore="ProtectedPermissions"/>
-  <!-- 向SDCard写入数据权限 -->
-  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
-  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.BLUETOOTH" /> <!-- SD卡中创建与删除文件权限 -->
+    <uses-permission
+        android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
+        tools:ignore="ProtectedPermissions" /> <!-- 向SDCard写入数据权限 -->
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 摄像头 -->
+    <uses-permission android:name="android.permission.CAMERA" />
 
-  <!-- 摄像头 -->
-  <uses-permission android:name="android.permission.CAMERA" />
-  <uses-feature android:name="android.hardware.camera" />
-  <uses-feature android:name="android.hardware.camera.autofocus" />
+    <uses-feature android:name="android.hardware.camera" />
+    <uses-feature android:name="android.hardware.camera.autofocus" />
 
-  <application
-      android:name=".DemoApp"
-      android:allowBackup="true"
-      android:icon="@mipmap/ic_launcher"
-      android:label="@string/app_name"
-      android:roundIcon="@mipmap/ic_launcher_round"
-      android:supportsRtl="true"
-      android:networkSecurityConfig="@xml/network_security_config"
-      android:theme="@style/AppTheme">
-    <activity android:name=".activities.MainActivity">
-      <intent-filter>
-        <action android:name="android.intent.action.MAIN"/>
+    <application
+        android:name=".DemoApp"
+        android:allowBackup="true"
+        android:icon="@mipmap/ic_launcher"
+        android:label="@string/app_name"
+        android:networkSecurityConfig="@xml/network_security_config"
+        android:roundIcon="@mipmap/ic_launcher_round"
+        android:supportsRtl="true"
+        android:theme="@style/AppTheme">
+        <activity
+            android:name=".activities.poc.SceneActivity"
+            android:exported="true">
 
-        <category android:name="android.intent.category.LAUNCHER"/>
-      </intent-filter>
-    </activity>
-    <activity android:name=".activities.GraphyActivity">
-    </activity>
-    <activity android:name=".activities.WebViewActivity">
+        </activity>
+        <activity
+            android:name=".activities.poc.SpaceActivity"
+            android:exported="true">
 
-    </activity>
+        </activity>
+        <activity android:name=".activities.MainActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
 
-  </application>
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name=".activities.GraphyActivity" />
+        <activity android:name=".activities.WebViewActivity" />
+        <activity android:name=".activities.PocActivity">
+
+        </activity>
+    </application>
 
 </manifest>

+ 27 - 0
demo/src/main/java/com/sybotan/android/demo/activities/PocActivity.kt

@@ -0,0 +1,27 @@
+package com.sybotan.android.demo.activities
+
+import android.os.Bundle
+import android.support.constraint.ConstraintLayout
+import android.support.v7.app.AppCompatActivity
+import com.sybotan.android.demo.R
+import com.sybotan.android.demo.activities.poc.SceneActivity
+import com.sybotan.android.demo.activities.poc.SpaceActivity
+import org.jetbrains.anko.startActivity
+
+class PocActivity : AppCompatActivity() {
+    private val tag = "PocActivity"
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.activity_poc)
+
+        val spaceCL = findViewById<ConstraintLayout>(R.id.spaceCL)
+        spaceCL.setOnClickListener {
+            startActivity<SpaceActivity>()
+        }
+
+        val sceneCL = findViewById<ConstraintLayout>(R.id.sceneCL)
+        sceneCL.setOnClickListener {
+            startActivity<SceneActivity>()
+        }
+    }
+}

+ 39 - 0
demo/src/main/java/com/sybotan/android/demo/activities/poc/SceneActivity.kt

@@ -0,0 +1,39 @@
+package com.sybotan.android.demo.activities.poc
+
+import android.os.Bundle
+import android.support.v7.app.AppCompatActivity
+import android.widget.ExpandableListView
+import android.widget.Toast
+import com.sybotan.android.demo.R
+import com.sybotan.android.demo.adapter.ExpandAdapter
+import kotlinx.android.synthetic.main.activity_scene.*
+
+class SceneActivity : AppCompatActivity() {
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.activity_scene)
+
+        val expandLV = findViewById<ExpandableListView>(R.id.expandLV)
+        expandLV.setGroupIndicator(null)
+        val adapter = ExpandAdapter(this, map.keys.toList(), map.values.toList())
+        expandLV.setAdapter(adapter)
+        expandLV.adapter
+        expandLV.divider = null
+        expandLV.setOnChildClickListener { parent, v, groupPosition, childPosition, id ->
+
+            Toast.makeText(this@SceneActivity, "click on $groupPosition, $childPosition", Toast.LENGTH_LONG).show()
+            true
+        }
+
+        backIv.setOnClickListener {
+            finish()
+        }
+
+    }
+}
+
+private val map = mapOf(
+        "B1" to listOf("F4", "F3", "F2", "F1"),
+        "B2" to listOf("F5", "F4", "F3", "F2", "F1"),
+        "B3" to listOf("F6", "F5", "F4", "F3", "F2", "F1")
+)

+ 57 - 0
demo/src/main/java/com/sybotan/android/demo/activities/poc/SpaceActivity.kt

@@ -0,0 +1,57 @@
+package com.sybotan.android.demo.activities.poc
+
+import android.os.Bundle
+import android.support.v7.app.AppCompatActivity
+import android.widget.ExpandableListView
+import android.widget.Toast
+import com.sybotan.android.demo.R
+import com.sybotan.android.demo.adapter.ExpandAdapter
+import kotlinx.android.synthetic.main.activity_scene.*
+
+class SpaceActivity : AppCompatActivity() {
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.activity_space)
+
+        val expandLV = findViewById<ExpandableListView>(R.id.expandLV)
+        expandLV.setGroupIndicator(null)
+        val adapter = ExpandAdapter(this, groups, items)
+        expandLV.setAdapter(adapter)
+        expandLV.adapter
+        expandLV.divider = null
+        expandLV.setOnChildClickListener { parent, v, groupPosition, childPosition, id ->
+
+            Toast.makeText(this@SpaceActivity, "click on $groupPosition, $childPosition", Toast.LENGTH_LONG).show()
+            true
+        }
+
+        backIv.setOnClickListener {
+            finish()
+        }
+    }
+}
+
+val groups = listOf("B1", "B2", "B3")
+val items = listOf(
+        listOf("F4", "F3", "F2", "F1"),
+        listOf("F5", "F4", "F3", "F2", "F1"),
+        listOf("F6", "F5", "F4", "F3", "F2", "F1")
+)
+/*
+private fun data(): Map<String, List<String>> {
+    val group = mutableMapOf<String, List<String>>()
+
+    val item1 = listOf("F4,F3,F2,F1")
+    group["B1"] = item1
+
+    val item2 = listOf("F5,F4,F3,F2,F1")
+    group["B2"] = item2
+
+    val item3 = listOf("F6,F5,F4,F3,F2,F1")
+    group["B3"] = item3
+
+    return group
+}
+*/
+
+

+ 75 - 0
demo/src/main/java/com/sybotan/android/demo/adapter/ExpandAdapter.kt

@@ -0,0 +1,75 @@
+package com.sybotan.android.demo.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.BaseExpandableListAdapter
+import android.widget.TextView
+import com.sybotan.android.demo.R
+
+
+class ExpandAdapter<String>(
+        context: Context,
+        groups: List<String>,
+        items: List<List<String>>
+) : BaseExpandableListAdapter() {
+    private var mContext: Context = context
+    private var mGroups: List<String> = groups
+    private var mItems: List<List<String>> = items
+    private var mLayoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+    override fun getGroupCount(): Int {
+        return mGroups.size
+    }
+
+    override fun getChildrenCount(groupPosition: Int): Int {
+        return mItems[groupPosition].size
+    }
+
+    override fun getGroup(groupPosition: Int): String {
+        return mGroups[groupPosition]
+    }
+
+    override fun getChild(groupPosition: Int, childPosition: Int): String {
+        return mItems[groupPosition][childPosition]
+    }
+
+    override fun getGroupId(groupPosition: Int): Long {
+        return groupPosition.toLong()
+    }
+
+    override fun getChildId(groupPosition: Int, childPosition: Int): Long {
+        return childPosition.toLong()
+    }
+
+    override fun isChildSelectable(groupPosition: Int, childPosition: Int): Boolean {
+        return true
+    }
+
+    override fun hasStableIds(): Boolean {
+        return false
+    }
+
+    override fun getGroupView(groupPosition: Int, isExpanded: Boolean, convertView: View?, parent: ViewGroup?): View {
+        var holder = convertView
+        if (holder == null) {
+            holder = mLayoutInflater.inflate(R.layout.group_expand_space, parent, false)
+        }
+        val group: String = mGroups[groupPosition]
+        val tvGroup = holder?.findViewById(R.id.groupSpaceTV) as TextView
+        tvGroup.text = group as CharSequence
+        return holder
+    }
+
+    override fun getChildView(groupPosition: Int, childPosition: Int, isLastChild: Boolean, convertView: View?, parent: ViewGroup?): View {
+        var holder = convertView
+        if (holder == null) {
+            holder = mLayoutInflater.inflate(R.layout.child_expand_space, parent, false)
+        }
+        val itemTv = holder?.findViewById(R.id.itemSpaceTV) as TextView
+        val item = mItems[groupPosition][childPosition]
+        itemTv.text = item as CharSequence
+        return holder
+    }
+}

+ 10 - 0
demo/src/main/res/drawable/ic_round_arrow_back_24.xml

@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24"
+    android:tint="?attr/colorControlNormal">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M19,11H7.83l4.88,-4.88c0.39,-0.39 0.39,-1.03 0,-1.42 -0.39,-0.39 -1.02,-0.39 -1.41,0l-6.59,6.59c-0.39,0.39 -0.39,1.02 0,1.41l6.59,6.59c0.39,0.39 1.02,0.39 1.41,0 0.39,-0.39 0.39,-1.02 0,-1.41L7.83,13H19c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1z"/>
+</vector>

+ 9 - 0
demo/src/main/res/drawable/red_point.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="oval"
+    android:useLevel="false">
+    <solid android:color="@color/red_900" />
+    <stroke
+        android:width="1dp"
+        android:color="@color/black" />
+</shape>

+ 97 - 0
demo/src/main/res/layout/activity_poc.xml

@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout 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">
+
+    <android.support.constraint.ConstraintLayout
+        android:id="@+id/spaceCL"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="64dp"
+        app:layout_constraintEnd_toStartOf="@+id/sceneCL"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <ImageView
+            android:id="@+id/strIV"
+            android:layout_width="128dp"
+            android:layout_height="128dp"
+            android:src="@mipmap/space"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <TextView
+            android:id="@+id/strTitleTV"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="空间结构核查"
+            android:textColor="@color/black_272727"
+            android:textSize="20sp"
+            app:layout_constraintEnd_toEndOf="@+id/strIV"
+            app:layout_constraintStart_toStartOf="@+id/strIV"
+            app:layout_constraintTop_toBottomOf="@+id/strIV" />
+
+        <TextView
+            android:id="@+id/strInfoTV"
+            android:layout_width="24dp"
+            android:layout_height="24dp"
+            android:background="@drawable/red_point"
+            android:gravity="center"
+            android:padding="4dp"
+            android:text="15"
+            android:textColor="@android:color/white"
+            android:textSize="12sp"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toTopOf="@+id/strIV" />
+
+
+    </android.support.constraint.ConstraintLayout>
+
+    <android.support.constraint.ConstraintLayout
+        android:id="@+id/sceneCL"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:layout_constraintBottom_toBottomOf="@+id/spaceCL"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toEndOf="@id/spaceCL"
+        app:layout_constraintTop_toTopOf="@+id/spaceCL">
+
+        <ImageView
+            android:id="@+id/surIV"
+            android:layout_width="128dp"
+            android:layout_height="128dp"
+            android:src="@mipmap/scene"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.0"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <TextView
+            android:id="@+id/surTitleTV"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="现场勘测描绘"
+            android:textColor="@color/black_272727"
+            android:textSize="20sp"
+            app:layout_constraintEnd_toEndOf="@+id/surIV"
+            app:layout_constraintStart_toStartOf="@+id/surIV"
+            app:layout_constraintTop_toBottomOf="@+id/surIV" />
+
+        <TextView
+            android:id="@+id/surInfoTV"
+            android:layout_width="24dp"
+            android:layout_height="24dp"
+            android:background="@drawable/red_point"
+            android:gravity="center"
+            android:padding="4dp"
+            android:text="15"
+            android:textColor="@android:color/white"
+            android:textSize="12sp"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toTopOf="@+id/surIV" />
+    </android.support.constraint.ConstraintLayout>
+
+
+</android.support.constraint.ConstraintLayout>

+ 51 - 0
demo/src/main/res/layout/activity_scene.xml

@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout 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=".activities.poc.SpaceActivity">
+
+    <android.support.constraint.ConstraintLayout
+        android:id="@+id/topBarTv"
+        android:layout_width="match_parent"
+        android:layout_height="48dp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <ImageView
+            android:id="@+id/backIv"
+            android:layout_width="24dp"
+            android:layout_height="24dp"
+            android:layout_marginStart="16dp"
+            android:contentDescription="back"
+            android:src="@drawable/ic_round_arrow_back_24"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <TextView
+            android:id="@+id/titleTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="现场勘测描绘"
+            android:textColor="@color/black_272727"
+            android:textSize="18sp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+    </android.support.constraint.ConstraintLayout>
+
+    <ExpandableListView
+        android:id="@+id/expandLV"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/topBarTv" />
+</android.support.constraint.ConstraintLayout>

+ 51 - 0
demo/src/main/res/layout/activity_space.xml

@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout 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=".activities.poc.SpaceActivity">
+
+    <android.support.constraint.ConstraintLayout
+        android:id="@+id/topBarTv"
+        android:layout_width="match_parent"
+        android:layout_height="48dp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <ImageView
+            android:id="@+id/backIv"
+            android:layout_width="24dp"
+            android:layout_height="24dp"
+            android:layout_marginStart="16dp"
+            android:contentDescription="back"
+            android:src="@drawable/ic_round_arrow_back_24"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <TextView
+            android:id="@+id/titleTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="空间结构核查"
+            android:textColor="@color/black_272727"
+            android:textSize="18sp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+    </android.support.constraint.ConstraintLayout>
+
+    <ExpandableListView
+        android:id="@+id/expandLV"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/topBarTv" />
+</android.support.constraint.ConstraintLayout>

+ 42 - 0
demo/src/main/res/layout/child_expand_space.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout 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="48dp">
+
+    <TextView
+        android:id="@+id/itemSpaceTV"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="32dp"
+        android:text="#F"
+        android:textColor="@color/black_272727"
+        android:textSize="16sp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@+id/numTV"
+        android:layout_width="58dp"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="16dp"
+        android:gravity="end"
+        android:text="15"
+        android:textColor="@color/black_272727"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="1.0"
+        app:layout_constraintStart_toEndOf="@+id/itemSpaceTV"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:layout_marginStart="16dp"
+        android:layout_marginEnd="16dp"
+        android:background="@color/black_272727"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent" />
+</android.support.constraint.ConstraintLayout>

+ 20 - 0
demo/src/main/res/layout/group_expand_space.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="wrap_content"
+    android:layout_height="56dp">
+
+    <TextView
+        android:id="@+id/groupSpaceTV"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="16dp"
+        android:layout_marginEnd="16dp"
+        android:text="Group"
+        android:textColor="@color/black_272727"
+        android:textSize="20sp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+</android.support.constraint.ConstraintLayout>

BIN
demo/src/main/res/mipmap-hdpi/img.png


BIN
demo/src/main/res/mipmap-hdpi/scene.png


BIN
demo/src/main/res/mipmap-hdpi/space.png


+ 1 - 1
demo/src/main/res/values/strings.xml

@@ -22,5 +22,5 @@
   -->
 
 <resources>
-  <string name="app_name">Demo</string>
+    <string name="app_name">Demo</string>
 </resources>