遊んでいるうちに、Google + Androidアプリからのストリームを上下にスクロールすると、現在表示されている投稿の垂直方向のサイズに応じてスクロールバーのサイズが変わることに気付きました。たとえば、長い投稿にスクロールするとバーのサイズが小さくなり、短い投稿にスクロールするとバーが長くなります。これはどのように実装されますか?
今、私はこの機能を特に必要としませんが、それは私の好奇心を刺激したものにすぎません。
遊んでいるうちに、Google + Androidアプリからのストリームを上下にスクロールすると、現在表示されている投稿の垂直方向のサイズに応じてスクロールバーのサイズが変わることに気付きました。たとえば、長い投稿にスクロールするとバーのサイズが小さくなり、短い投稿にスクロールするとバーが長くなります。これはどのように実装されますか?
今、私はこの機能を特に必要としませんが、それは私の好奇心を刺激したものにすぎません。
これは、リサイクルを使用することの副作用ですListView
。新しい投稿がスクロールインされて表示されると、残りの項目が仮想化されます。基本的に Android は、リストの残りの部分が占めるスペースを推測しますが、実際にはそれらをレンダリングしないため、確実ではありません。大きな投稿にスクロールすると、リストの残りの部分に大きな投稿があると想定されるため、リストが長くなります。
次のようなconvertView
パラメーターを使用して、同じ機能を得ることができます。getView
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View view = null;
if(convertView == null)
{
view = // set your view here
}
else
{
view = convertView
}
// set all your properties on the view here.
return view;
}