【发布时间】:2018-01-23 18:17:57
【问题描述】:
当尝试在 RecyclerView.Adapter 中使用 Kotlin 扩展来引用 XML 布局文件中的视图时,Intellij 无法通过其 ID 识别视图,即使导入看似正确。奇怪的是,它可以在 Activity 或 Fragment 内部工作。 是否需要额外的上下文才能在 RecyclerView.Adapter 中工作?
Intellisense 没有在 RecyclerView.Adapter 实现中获取视图:
这是我的 XML,以防万一
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
>
<LinearLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/tv_list_repo_name"
android:text="@string/repo_name"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv_item_repo_description"
android:text="@string/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center_vertical">
<TextView
android:id="@+id/tv_item_forks"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableStart="@drawable/ic_fork"
android:text="10"
android:gravity="end"/>
<TextView
android:id="@+id/tv_item_stars"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableStart="@drawable/ic_star"
android:gravity="end"
android:text="14,000"
/>
</LinearLayout>
</LinearLayout>
【问题讨论】:
-
你看到这个question了吗?
-
是的,感谢您以防万一。我有一个相同的导入方案,甚至尝试同时导入 kotlinx.....yourview.* 和 kotlinx....yourview.view.*
-
它不能直接在您的
getItemCount方法中工作。要访问它,您需要使用 viewHolder 类中的视图。 -
在考虑您的观点之后,在接受 View 参数的自定义 Viewholder 中尝试时,同样的问题也适用。这也适用于适配器类中的 onCreateViewHolder
标签: android android-layout android-linearlayout kotlin-android-extensions