0

我为列表视图行创建了嵌套视图。我也使用水平滚动视图在特定行中水平滚动。但是在某些行中,我希望有从右到左的滚动功能。我对此进行了搜索,我发现了一些 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;
}

任何帮助表示赞赏。谢谢

4

2 回答 2

1

请使用 My NEXUS 7 中的此链接 屏幕截图: 在此处输入图像描述

于 2013-04-16T13:37:20.373 回答
1

我在@Appu 和堆栈溢出的其他成员的帮助下解决了这个问题......

只是我将此代码添加到我想自动向右滚动的行中

holder.hv.post(new Runnable() 
                {
                    public void run() 
                     {
   holder.hv.smoothScrollTo(holder.hv.getRight()+80, holder.hv.getTop());

// Hv 是水平滚动视图

                     }
                  });
于 2013-04-17T10:11:33.067 回答