我是一名新的Android應用程序開發人員。我想知道如何創建無限的水平滾動視圖。例如,有三個按鈕(Button1,Button2和Button3)。當用戶滾動視圖時,我仍然想在Button3之後再次顯示Button1。您能否提供任何示例代碼或任何想法?android中的無盡水平滾動視圖
謝謝。
我是一名新的Android應用程序開發人員。我想知道如何創建無限的水平滾動視圖。例如,有三個按鈕(Button1,Button2和Button3)。當用戶滾動視圖時,我仍然想在Button3之後再次顯示Button1。您能否提供任何示例代碼或任何想法?android中的無盡水平滾動視圖
謝謝。
您可以檢查您的按鈕視圖是否仍然可見。首先檢查是否按鈕一個可見:
private boolean isViewVisible(View view) {
Rect scrollBounds = new Rect();
mScrollView.getDrawingRect(scrollBounds);
float top = view.getY();
float bottom = top + view.getHeight();
if (scrollBounds.top < top && scrollBounds.bottom > bottom) {
return true;
} else {
return false;
}
}
如果它是不可見的,然後再添加一個按鈕。每次用戶滾動時在滾動偵聽器中調用此方法,以檢查該按鈕是否不可見。如果該按鈕不可見,請重新添加。
如果你想讓它無盡本身,試試這個:
public class Test extends ListActivity implements OnScrollListener {
Aleph0 adapter = new Aleph0();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(adapter);
getListView().setOnScrollListener(this);
}
public void onScroll(AbsListView view,
int firstVisible, int visibleCount, int totalCount) {
boolean loadMore = /* maybe add a padding */
firstVisible + visibleCount >= totalCount;
if(loadMore) {
adapter.count += visibleCount; // or any other amount
adapter.notifyDataSetChanged();
}
}
public void onScrollStateChanged(AbsListView v, int s) { }
class Aleph0 extends BaseAdapter {
int count = 40; /* starting amount */
public int getCount() { return count; }
public Object getItem(int pos) { return pos; }
public long getItemId(int pos) { return pos; }
public View getView(int pos, View v, ViewGroup p) {
TextView view = new TextView(Test.this);
view.setText("entry " + pos);
return view;
}
}
}
,並看看這個:
android:how to make infinite scrollview with endless scrolling
完蛋了。只需查看用戶滾動時視圖何時超出界限即可。
當它不在視圖中時,只需重新添加即可。
希望這個幫助:http://stackoverflow.com/questions/19469054/androidhow-to-make-infinite-scrollview-with-endless-scrolling –
簡短的方法 - 重複內容和倒帶特定點的滾動偏移量。真正的方法 - 重寫ScrollView的一些調度方法,以進行正確的事件處理和內容呈現。並倒退滾動偏移量。 xD – nekavally