Библиотека Folding-Cell- android не работает, давая ноль не может привести к ненулевой ошибке - PullRequest
0 голосов
/ 10 февраля 2020

Библиотека

Репо:

https://github.com/Ramotion/folding-cell-android/

Версия:

com.ramotion.foldingcell: откидная ячейка: 1.2.3

При попытке запуска возникает проблема пример списка складывающихся ячеек из репозитория github Я получаю эту ошибку:

E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.rebocar.guincho7, PID: 13693 kotlin .TypeCastException: значение NULL не может быть приведено к непустому типу ошибка указывает на код getView:

 override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { // get item for selected view
        val item = getItem(position)

        // if cell is exists - reuse it, if not - create the new one from resource

        val cell = convertView as FoldingCell

        val viewHolder: ViewHolder

        // for existing cell set valid valid state(without animation)
        if (unfoldedIndexes.contains(position)) {
            cell.unfold(true)
        } else {
            cell.fold(true)
        }
        viewHolder = cell.tag as ViewHolder

        if (null == item) return cell

        // bind data from selected element to view through view holder
        // bind data from selected element to view through view holder
        viewHolder.price!!.text = item.price
        viewHolder.time!!.text = item.time
        viewHolder.date!!.text = item.date
        viewHolder.fromAddress!!.text = item.fromAddress
        viewHolder.toAddress!!.text = item.toAddress
        viewHolder.requestsCount!!.text = item.requestsCount.toString()
        viewHolder.pledgePrice!!.text = item.pledgePrice

        // set custom btn handler for list item from that item
        // set custom btn handler for list item from that item
        if (item.getRequestBtnClickListener() != null) {
            viewHolder.contentRequestBtn!!.setOnClickListener(item.getRequestBtnClickListener())
        } else { // (optionally) add "default" handler if no handler found in item
            viewHolder.contentRequestBtn!!.setOnClickListener(defaultRequestBtnClickListener)
        }

        return cell
    }

Строка 26: val cell = convertView as FoldingCell

Если я прокомментирую следующие строки, это не выдает ошибку (но не показывает что угодно):

mainListView.adapter  = adapter
 mainListView.setOnItemClickListener { _, view, pos, _ ->
            // toggle clicked cell state
            (view as FoldingCell).toggle(false)
            // register in adapter that state for selected cell is toggled
            adapter.registerToggle(pos)
        }

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

1 Ответ

0 голосов
/ 10 февраля 2020

В разделе об использовании c указано, что в макете должна быть указанная структура c

    <com.ramotion.foldingcell.FoldingCell
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/folding_cell"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
​
        <FrameLayout
            android:id="@+id/cell_content_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_green_dark"
            android:visibility="gone">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="250dp" />
        </FrameLayout>
​
        <FrameLayout
            android:id="@+id/cell_title_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:background="@android:color/holo_blue_dark" />
        </FrameLayout>
​
</com.ramotion.foldingcell.FoldingCell>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...