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

时间:2013-04-16 13:16:42

标签: android android-layout android-scrollview

我为列表视图行创建了嵌套视图。我也使用水平滚动视图在特定行水平滚动。 但是在某些行中我想从右到左拥有滚动设施。 我搜索这个我发现了一些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;
}

任何帮助表示赞赏。 谢谢

2 个答案:

答案 0 :(得分:1)

请使用此link My NEXUS 7的屏幕截图: enter image description here

答案 1 :(得分:1)

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

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

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

// Hv是horizo​​ntalscrollview

                     }
                  });