2017-03-28 13 views
0

すべての子アイテムの幅を取得するにはどうすればよいですか?Recyclerviewの子アイテムの幅

私は

onCreateViewHolder
viewholder.textView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 

     @Override 
     public void onGlobalLayout() { 

      viewholder.textView.getWidth(); 
      Log.e("TAG", "onGlobalLayout: " + viewholder.textView.getWidth()); 

     } 
    }); 

内のこれらのコードを入れて、私は私のアプリをデバッグするときに、幅の値が出てくるがたくさんあります。すべての子の幅(不可視の子を含む)を正しい方法で取得する方法

答えて

0

私のアプリをデバッグすると、幅の値が出てきます。すべての子の幅(不可視の子を含む)を正しい方法で取得する方法

最初に、作成されていないため、目に見えない(画面境界にないことを意味すると見なします)子供の幅を取得できません。

たくさんの幅の値が

第二に出てくる、あなたはできるだけ早くあなたがそれで終わったとして、より良い登録解除リスナーをしたい:

viewholder.textView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
     viewholder.textView.getViewTreeObserver().removeOnGlobalFocusChangeListener(this); 

     viewholder.textView.getWidth(); 
     Log.e("TAG", "onGlobalLayout: " + viewholder.textView.getWidth()); 

    } 
}); 
+0

よしを。 10個のアイテムがあり、最初のアイテムでrecyclerviewが選択されたらどうなりますか?後で7番目のアイテムが表示されないので、最後のアイテムにスクロールするにはどうすればよいですか? –

+0

@WeiLong、 'layoutManager.scrollToPositionWithOffset(10、0)' – azizbekian

+0

それは動作していないし、スクロールだけしか進むことができません –

関連する問題