我为列表视图行创建了嵌套视图。我也使用水平滚动视图在特定行水平滚动。 但是在某些行中我想从右到左拥有滚动设施。 我搜索这个我发现了一些smoothscrollto =“20dp”,但它根本不起作用。
已修改的文字
我在点击监听器的图像视图中添加了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;
}
任何帮助表示赞赏。 谢谢
答案 0 :(得分:1)
请使用此link My NEXUS 7的屏幕截图:
答案 1 :(得分:1)
我在@Appu和堆栈溢出的其他成员的帮助下解决了这个问题......
我刚将此代码添加到我想自动向右滚动的行
holder.hv.post(new Runnable()
{
public void run()
{
holder.hv.smoothScrollTo(holder.hv.getRight()+80, holder.hv.getTop());
// Hv是horizontalscrollview
}
});