[英]Android listview how to scroll selected item to the top
我想在Android中創建一個ListView。 當我點擊某個項目時,我希望它將其滾動到頂部。 我怎樣才能做到這一點? 這是我正在嘗試的Activity類,項目選擇工作正常,但它不會滾動到頂部
public class MyListActivity extends ListActivity {
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
"Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
"Linux", "OS/2" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String item = (String) getListAdapter().getItem(position);
//l.setSelection(2);
Toast.makeText(this, position + " selected", Toast.LENGTH_LONG).show();
//l.smoothScrollToPosition(5);
}
}
用這個。 將項目平滑地滾動到列表視圖的頂部。
int duration = 500; //miliseconds
int offset = 0; //fromListTop
listview.smoothScrollToPositionFromTop(position,offset,duration);
嘗試使用此方法setSelection (int position)
。
設置當前選定的項目。 要支持覆蓋此方法的可訪問性子類,必須首先調用overridden
超級方法。
根據這個https://stackoverflow.com/a/18133295/3225458 ,您應該嘗試post
平滑滾動:
@Override
protected void onListItemClick(final ListView l, View v, int position, long id) {
String item = (String) getListAdapter().getItem(position);
l.post(new Runnable() {
@Override
public void run() {
l.smoothScrollToPosition(pos);
}
});
Toast.makeText(this, position + " selected", Toast.LENGTH_LONG).show();
}
試試這個: -
yourListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
int duration = 500; // miliseconds
int offset = 0;
yourListView.smoothScrollToPositionFromTop(arg2, offset, duration);
yourListView.setSelection(arg2);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.