您好,对不起另一个列表视图滚动问题,我正在Android上实现列表视图,但它不能顺利滚动。我添加了一个ViewHolder模式,我试图只为行设置textview但仍然无效。而且我不认为我在UI威胁上做了很多工作,因为容器活动只有3个静态按钮。
这是我的Adapter getView函数:
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
// if it's not recycled, initialize some attributes
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// get layout reference
convertView = inflater.inflate(R.layout.row_search, parent, false);
holder = new ViewHolder();
// Get the reference to layout
holder.ivColorSearch = convertView.findViewById(R.id.vi_color_search);
holder.tvColorDesc = (TextView) convertView.findViewById(R.id.tv_color_desc);
holder.position = position;
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// Set colo+r description
holder.tvColorDesc.setText(dataSet.get(position).name + "\n" + fandeckNames.get(dataSet.get(position).fandeck));
// Set image color
GradientDrawable drawable = (GradientDrawable) holder.ivColorSearch.getBackground();
int color = Color.parseColor(dataSet.get(position).colorCode);
drawable.setColor(color);
// Set the listener
holder.ivColorSearch.setOnClickListener(this);
holder.tvColorDesc.setOnClickListener(this);
holder.ivColorSearch.setTag(position);
holder.tvColorDesc.setTag(position);
return convertView;
}
正如你所看到的那样,每一行只有一个View(它是一个Image视图,但我正在尝试改进它)来设置它的背景颜色和TextView。 如果我删除设置图像并设置文本代码块,它直接不滚动,我无法理解为什么。
这是我的列表视图xml声明(它在自定义视图中):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_gravity="fill_horizontal"
android:orientation="vertical"
android:visibility="gone"
android:background="@android:color/black"
android:layout_alignParentEnd="true"
android:layout_marginTop="50dp"
android:layout_marginBottom="50dp">
<!-- Search field -->
<EditText
android:id="@+id/et_search"
android:layout_width="190dp"
android:layout_height="50dp"
android:hint="@string/search"
android:inputType="textFilter"
android:layout_marginStart="5dp"
android:background="@drawable/rounded_corners_edittext"/>
<!-- Colors list -->
<ListView
android:id="@+id/lv_search_colors"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:scrollbars="none"
android:layout_marginTop="50dp"
android:divider="@null">
</ListView>
</RelativeLayout>
这是我的行代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_language_item"
android:orientation="horizontal"
android:layout_width="200dp"
android:layout_height="50dp">
<View
android:id="@+id/vi_color_search"
android:layout_width="46dp"
android:layout_height="46dp"
android:layout_margin="2dp"
android:background="@drawable/rounded_corners_image"/>
<TextView
android:id="@+id/tv_color_desc"
android:layout_width="150dp"
android:layout_height="50dp"
android:textColor="@android:color/white"
android:lines="2"
android:textAlignment="center"/>
</LinearLayout>
在此先感谢,如果您需要更多信息,请问,我从星期六开始就遇到过这个问题,我已经测试了很多不同的解决方案,但我认为这是实现列表视图的更好方法。
答案 0 :(得分:1)
已经解决了,我很抱歉,这是我的错。我正在覆盖容器活动中列表视图的触摸侦听器。
建议:不要复制粘贴jeje