我使用了基本适配器来创建自定义列表视图。 listview的每一行都有一个ImageView和TextView。我想要做的是,当我滚动listview时,我想在listview的第一个可见行中获取textview的文本,然后我想使textview看不到listview的第一个可见行。如何在listview的onScroll方法中获取视图的Id和数据。
@Override
public View getView(int arg0, View convertView, ViewGroup arg2) {
// TODO Auto-generated method stub
convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.list_row, arg2, false);
TextView tv = (TextView)convertView.findViewById(R.id.textViewrow);
tv.setText("position " + arg0);
tv_item = tv;
// tv.setTag("position " + arg0);
return convertView;
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
// ViewGroup viewGroup = (ViewGroup) view.getAdapter()
// .getView(firstVisibleRow, null, view);//
int post = lv.getFirstVisiblePosition();
TextView tv = (TextView)lv.findViewWithTag("position " + post);
System.out.println("position " + post);
// View v= lv.findViewWithTag("position " + post);
// v.findViewById(R.id.textViewrow).gett
// System.out.println("position text" + tv.getText());
/*tv_item.getHitRect(rect2);
if (Rect.intersects(rect1, rect2)) {
Toast.makeText(getApplicationContext(), "intersected", Toast.LENGTH_LONG).show();
}*/
}
答案 0 :(得分:1)
我猜这个问题与this:)
有关要解决您的问题,我搜索了一下,发现this
现在要解决您的问题,您必须按照以下步骤操作:
你必须得到第一个可见行的视图:
....
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
View view = mListView.getAdapter().getView(firstVisibleItem, null, mListView);
TextView mTextView = (TextView) view.findViewById(R.id.textViewrow);
mTextView.setVisbility(View.GONE);
我希望它可以帮到你,