我是一名新的安卓应用开发者。我想知道如何创建无限水平滚动视图。例如,有三个按钮(Button1、Button2和Button3)。当用户滚动视图时,我仍希望在Button3之后再次显示Button1。是否可以提供任何示例代码或任何想法?
谢谢。
我是一名新的安卓应用开发者。我想知道如何创建无限水平滚动视图。例如,有三个按钮(Button1、Button2和Button3)。当用户滚动视图时,我仍希望在Button3之后再次显示Button1。是否可以提供任何示例代码或任何想法?
谢谢。
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;
}
}
}
请看这个:
就是当用户滚动时,观察视图是否超出边界。
如果超出了边界,只需重新添加即可。