首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android的Listview中向左分配水平滚动

如何在android的Listview中向左分配水平滚动
EN

Stack Overflow用户
提问于 2013-04-16 13:16:42
回答 2查看 4K关注 0票数 0

我已经为列表视图行设置了嵌套视图。此外,我已经使用水平滚动视图水平滚动在特定的行。但在一些行,我想有滚动设施从右到左。我搜索了一下,我发现了一些smoothscrollto=“20 at”的东西,但是它根本不起作用。

编辑文本我在点击监听器的图像视图中添加了holder.hv.smoothScrollTo(holder.hv.getRight(), holder.hv.getTop());,当我单击该图像时,我的水平滚动视图移到了末尾(右)。如何才能在不单击监听器的情况下滚动特定的行?这是我的代码

代码语言:javascript
复制
 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;
}

任何帮助都是非常感谢的。谢谢

EN

回答 2

Stack Overflow用户

发布于 2013-04-16 13:37:20

请使用我的NEXUS 7的链接屏幕截图:

票数 1
EN

Stack Overflow用户

发布于 2013-04-17 10:11:33

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

我只是将这段代码添加到我想要自动向右滚动的行中。

代码语言:javascript
复制
holder.hv.post(new Runnable() 
                {
                    public void run() 
                     {
   holder.hv.smoothScrollTo(holder.hv.getRight()+80, holder.hv.getTop());

// Hv为水平滚动视图

代码语言:javascript
复制
                     }
                  });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16038129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档