2
正常工作
我使用拉,刷新滾動視圖工具與此庫的幫助拉刷新自動滾動不能在Android的
https://github.com/chrisbanes/Android-PullToRefresh
這是工作非常精細的,而不是scrollTo(int,int);
方法 我在代碼下面我在最後添加列表中的所有項目後使用此方法。
代碼在這裏。
public class MainActivity extends Activity {
PullToRefreshScrollView mPullRefreshScrollView;
LinearLayout listHolder;
ArrayList<String> list = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listHolder = (LinearLayout) findViewById(R.id.lay);
// initial values in List
for(int i =0;i<15;i++){
list.add("InitialValue");
}
mPullRefreshScrollView = (PullToRefreshScrollView) findViewById(R.id.pull_refresh_scrollview);
mPullRefreshScrollView
.setOnRefreshListener(new OnRefreshListener<ScrollView>() {
@Override
public void onRefresh(
PullToRefreshBase<ScrollView> refreshView) {
new GetDataTask().execute();
}
});
addJournal_Entry_page();
}
private class GetDataTask extends AsyncTask<Void, Void, String[]> {
@Override
protected String[] doInBackground(Void... params) {
try {
Thread.sleep(2000);
for(int i =0;i<4;i++){
list.add("InitialValue");
}
} catch (InterruptedException e) {
}
return null;
}
@Override
protected void onPostExecute(String[] result) {
// Do some stuff here
// Call onRefreshComplete when the list has been refreshed.
mPullRefreshScrollView.onRefreshComplete();
addJournal_Entry_page();
super.onPostExecute(result);
}
}
private void addJournal_Entry_page() {
View v;
listHolder.removeAllViews();
for (int i = 0; i < list.size(); i++) {
v = this.getLayoutInflater().inflate(R.layout.list_row, null);
TextView ind = (TextView)v.findViewById(R.id.index);
TextView name = (TextView)v.findViewById(R.id.name);
ind.setText(""+i);
name.setText(list.get(i));
listHolder.addView(v);
}
Resources r = getResources();
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
100, r.getDisplayMetrics());
//problem is Here
mPullRefreshScrollView.scrollTo(0,(int)px);
}
}
我在XML定義PullToRefreshScrollView
這樣
<com.handmark.pulltorefresh.library.PullToRefreshScrollView
xmlns:ptr="http://schemas.android.com/apk/res-auto"
android:id="@+id/pull_refresh_scrollview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
ptr:ptrAnimationStyle="flip"
ptr:ptrMode="pullFromStart" >
<LinearLayout
android:id="@+id/lay"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
</LinearLayout>
</com.handmark.pulltorefresh.library.PullToRefreshScrollView>
我得到的結果是這樣
有我的列表中15項所以它不應該顯示空白在列表的底部。
非常感謝
對你有什麼好運我有同樣的問題 – 2014-06-06 07:16:48