android

时间:2015-11-30 03:19:03

标签: android android-layout

我是一名新的Android应用程序开发人员。我想知道如何创建无尽的水平滚动视图。例如,有三个按钮(Button1,Button2和Button3)。当用户滚动视图时,我仍然希望在Button3之后再次显示Button1。您能提供任何示例代码或任何想法吗?

感谢。

1 个答案:

答案 0 :(得分:2)

您可以检查按钮视图是否仍然可见。首先检查按钮1是否可见:

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;
    }
}

如果看不到,则再次添加按钮1。每次用户滚动时,在滚动侦听器中调用此方法,以检查按钮是否不可见。如果按钮不可见,请再次添加。

如果你想让它无穷无尽,试试这个:

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 Endless List

android:how to make infinite scrollview with endless scrolling

多数民众赞成。只需在用户滚动时查看视图何时超出范围。

当它不在视野范围内时,只需重新添加即可。

相关问题