我已经为列表视图行设置了嵌套视图。此外,我已经使用水平滚动视图水平滚动在特定的行。但在一些行,我想有滚动设施从右到左。我搜索了一下,我发现了一些smoothscrollto=“20 at”的东西,但是它根本不起作用。
编辑文本我在点击监听器的图像视图中添加了holder.hv.smoothScrollTo(holder.hv.getRight(), holder.hv.getTop());,当我单击该图像时,我的水平滚动视图移到了末尾(右)。如何才能在不单击监听器的情况下滚动特定的行?这是我的代码
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
int type = getItemViewType(position);
System.out.println("getView " + position + " " + convertView + " type = " + type);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case 0:
convertView = inflater.inflate(R.layout.list_row1, null);
holder.hv = (HorizontalScrollView)convertView.findViewById(R.id.horizontalScrollView1);
holder.videoview1 = ((ImageView)convertView.findViewById(R.id.train).findViewById(R.id.boogi1).findViewById(R.id.imageView1));
Log.d("Listview", "front value is"+position);
holder.videoview1.setTag(position);
holder.videoview1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
holder.hv.smoothScrollTo(holder.hv.getRight(), holder.hv.getTop());
}
});
break;
case 1:convertView = inflater.inflate(R.layout.list_row2, null);
holder.videoview1 = ((ImageView)convertView.findViewById(R.id.train2).findViewById(R.id.boogi2).findViewById(R.id.imageView1));
holder.videoview1.setTag(position);
holder.videoview1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "you right clicked"+v.getTag() , Toast.LENGTH_SHORT).show();
}
});
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
return convertView;
}任何帮助都是非常感谢的。谢谢
发布于 2013-04-16 13:37:20
发布于 2013-04-17 10:11:33
我在@Appu和堆栈溢出的其他成员的帮助下解决了这个问题。
我只是将这段代码添加到我想要自动向右滚动的行中。
holder.hv.post(new Runnable()
{
public void run()
{
holder.hv.smoothScrollTo(holder.hv.getRight()+80, holder.hv.getTop());// Hv为水平滚动视图
}
});https://stackoverflow.com/questions/16038129
复制相似问题