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 に答える