Я хотел бы воссоздать список материалов : элементы управления на Android в скользящей панели.
Я использую:
- com.android.support:appcompat-v7
- com.android.support:support-v4
- com.android.support:recyclerview-v7
- com.android.support:design
- https://github.com/umano/AndroidSlidingUpPanel
- https://github.com/serso/android-linear-layout-manager
- https://github.com/daimajia/AndroidSwipeLayout
- https://github.com/tmiyamon/gradle-mdicons
Я закончил использование частей библиотек поддержки, но это конкретное приложение 5.0+ только, так что в моем коде могут быть только вещи Lollipop.
Вот макет элемента списка в моем RecyclerView:
<com.daimajia.swipe.SwipeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="right">
<RelativeLayout
android:layout_width="42dp"
android:layout_height="match_parent"
android:background="?android:selectableItemBackground"
android:clickable="true"
android:focusable="true">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_delete_black_24dp"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/surfaceView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ripple_floating"
android:clickable="true"
android:focusable="true"
android:minHeight="48dp"
android:paddingEnd="16dp"
android:paddingStart="16dp"
android:elevation="2dp">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:ellipsize="end"
android:singleLine="true"
android:text="..."/>
</RelativeLayout>
</com.daimajia.swipe.SwipeLayout>
И это текущий результат.
Остальные проблемы для решения - это тени и разделители высоты.
Как вы можете видеть на изображении, есть несколько разумных теней по сторонам элементов списка. Однако на нижней части предметов нет теней высоты, поэтому, когда объект обнаружен, тень не отображается над открытой областью.
Вторая проблема - разделители. У меня есть список с одним элементом, без значков/изображений, поэтому для правильной разработки нужно использовать разделители для элементов.
Однако я не могу использовать DividerItemDecoration из serso/android-linear-layout-manager, потому что он не интегрирован в слайдер, и это происходит, когда 2 смежных элемента сдвинуты.
Кто-нибудь знает какие-либо доступные, атрибут или библиотеку, которые я должен использовать, чтобы стилизовать эти элементы списка как материальные листы с тенями и границами высоты?