私は次の問題があります:更新一覧画面の位置に応じてアイテムの外観を表示
私はアンドロイドアプリでListViewを持っています。このリストビューの各項目には、2つのTextView(たとえば、左右)があります。次のような効果が得られます:左のTextViewは常に表示され、右のTextViewは画面の上半分にある場合にのみ表示され、ユーザーがListViewをスクロールすると可視性が変化します。
+-------+
|l1 r1|
|l2 r2| <= initial positions, r3 and r4 aren't displayed
|l3 |
|l4 |
+-------+
+-------+
|l3 r3|
|l4 r4| <= the user has scrolled the list up, r3 and r4 are displayed
|l5 |
|l5 |
+-------+
どのようにこのような効果を達成するには?
私のListViewのは、私は)getViewメソッド(内部右のTextViewの可視性を変更することができて幸せだろうアダプターが
public class ItemAdapter extends BaseAdapter {
Context ctx;
LayoutInflater lInflater;
private List<Item> items;
....
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if (view == null) {
view = lInflater.inflate(R.layout.sample_list_item_view, viewGroup, false);
}
Item item = items.get(i);
((TextView) view.findViewById(R.id.l)).setText(item.key);
((TextView) view.findViewById(R.id.r)).setText(item.value);
return view;
}
}
のように見える、BaseAdapterから延長し、アダプタを使用して、リストがスクロールされているときはこのメソッドは呼び出されません。
正確には、このメソッド内での可視性の更新を妨げるものです。 – ekaerovets
リストビューonScrollListenerを見てください。 https://stackoverflow.com/questions/28741645/how-to-implement-onscrolllistener-to-a-listview –