Носимый Recycler Пользовательский Макет Обратного вызова - PullRequest
0 голосов
/ 31 января 2020

Для моей задачи мне нужно создать список вроде this . Я использую WearableLinearLayoutManager со своим собственным LayoutCallback и получаю this . Что я делаю не так?

LayoutCallback

class CustomScrollingLayoutCallback : WearableLinearLayoutManager.LayoutCallback() {
    override fun onLayoutFinished(child: View, parent: RecyclerView) {
        child.apply {
            val centerOffset = height.toFloat() / 2.0f / parent.height.toFloat()
            val yRelativeToCenterOffset = y / parent.height + centerOffset
            val progressToCenter = abs(0.5f - yRelativeToCenterOffset)    
            val imgPadding = progressToCenter * 150.4f
            ivIcon.x = imgPadding    
            val iconBackPadding = imgPadding + ivIcon.width - vIconBack.width
            vIconBack.x = iconBackPadding    
            val textDataMargin = 10
            llDataContainer.x = iconBackPadding + vIconBack.width + textDataMargin
        }
    }
}

Может быть, вместо этого я должен использовать макет ограничения?

item. xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/item"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:orientation="horizontal"
    android:layout_marginTop="4dp">

    <View
        android:id="@+id/vIconBack"
        android:layout_width="100dp"
        android:layout_height="match_parent"
        android:x="-100dp"
        android:background="@color/red"
        android:orientation="horizontal"/>

    <ImageView
        android:id="@+id/ivIcon"
        android:layout_width="50dp"
        android:layout_height="match_parent"
        android:src="@drawable/ic_add_white_24dp"
        android:contentDescription="@string/icon" />

    <LinearLayout
        android:id="@+id/llDataContainer"
        android:orientation="vertical"
        android:gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/black"
            android:text="@string/some_text_1" />

        <TextView
            android:id="@+id/text2"
            android:layout_width="wrap_content"
            android:textColor="@color/black"
            android:layout_height="wrap_content"
            android:text="@string/some_text2" />

    </LinearLayout>
</LinearLayout>

Полный проект: https://github.com/FirstSpectr/WearableTest

...