2015-11-30 3 views
2

Я новый разработчик приложений для Android. Я хотел бы знать, как создать бесконечный горизонтальный вид прокрутки. Например, есть три кнопки (Button1, Button2 и Button3). Когда пользователь просматривает представление, я все еще хочу снова отобразить Button1 после Button3. Не могли бы вы предоставить какой-либо образец кода или любую идею?Бесконечный горизонтальный вид прокрутки в android

Спасибо.

+0

Надеюсь, эта помощь: http://stackoverflow.com/questions/19469054/androidhow-to-make-infinite-scrollview-with-endless-scrolling –

+0

Короткий путь - дублирование содержимого и перемотка прокрутки назад в определенных точках. Истинный способ - переопределить некоторые методы отправки ScrollView для правильной обработки событий и рендеринга содержимого. И перемотка назад назад. xD – nekavally

ответ

2

Вы можете проверить, все ли видны ваши кнопки. Сначала проверьте, видна ли одна кнопка:

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

android:how to make infinite scrollview with endless scrolling

Вот он. Просто посмотрите, когда представление выходит за пределы, когда пользователь прокручивает.

И когда это не видно, просто добавьте его.

+0

Привет, Ручир, Спасибо вам за ваш ответ. Мой вопрос о бесконечном горизонтальном просмотре прокрутки. Ваш ответ для бесконечного просмотра списка. Есть ли способ установить динамическое положение кнопки при прокрутке? – NML

+0

Мне нравится имя Aleph0 :-) – Ridcully

Смежные вопросы