我正在尝试迭代列表视图的所有子视图,包括不在屏幕上的子视图(直到滚动为止不可见),但它仅返回在屏幕上(可见)的那些子视图。
Button btnAddToCart = (Button) findViewById(R.id.btnAddToCart);
btnAddToCart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
View view;
TextView tvProductBrand;
for (int i = 0; i < lv.getCount(); i++){
view = lv.getChildAt(i);
if(view != null)
{
tvProductBrand = (TextView) view.findViewById(R.id.tvProductBrand);
str_ItemBrand_from_lv = tvProductBrand.getText().toString();
Toast.makeText(getApplicationContext(), "lv_item: "+str_ItemBrand_from_lv, Toast.LENGTH_SHORT).show();
}
}
}
});
我知道这个view = lv.getChildAt(i);
仅返回可见视图,如何返回所有子视图?
我的列表视图适配器是lv_custom_adapter
(也许我需要使用它,但不确定如何使用)?
答案 0 :(得分:0)
这是个好主意,请使用 RecyclerView
等级依赖性:
implementation "com.android.support:recyclerview-v7:28.0.0"
https://developer.android.com/guide/topics/ui/layout/recyclerview
将其放入NestedScrollView
设置nestedScrollingEnabled=true
<NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:nestedScrollingEnabled="true"/>
您将一次获得所有孩子
答案 1 :(得分:0)
感谢这篇文章为我们揭开了序幕:Get ListView children that are not in view
我的观点:
view = lv.getAdapter().getView(i, lv.getChildAt(i), lv);