Горизонтальное ListView, как Google Каталоги

Как сделать представление горизонтального списка, подобное тому, которое видно в каталогах Google?

Большая основная область – это viewpager, но нижняя строка представляет собой горизонтальное прокрутку с перечнем элементов, которые можно щелкнуть. Я предполагаю, что это список, если бы это было сделано?

Я использовал «горизонтальный список» с открытым исходным кодом, на который ссылаются другие вопросы здесь, но он работает не так гладко, как в этом приложении Google.

http://i43.tinypic.com/2yl1zxg.png

Это определенно галерея!

Вы можете видеть здесь, что наверняка это Галерея, которая поставляется с SDK -> Смотрите видео Youtube, чтобы проверить, насколько он гладок;)

Я сделал себе короткий путеводитель с Android.com для дальнейшего использования. Я надеюсь, что вы тоже сможете использовать его:

1) Откройте файл res / layout / main.xml и вставьте следующее:

<?xml version="1.0" encoding="utf-8"?> <Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" /> 

2) Код для вставки в метод onCreate() :

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Gallery gallery = (Gallery) findViewById(R.id.gallery); gallery.setAdapter(new ImageAdapter(this)); gallery.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { Toast.makeText(HelloGallery.this, "" + position, Toast.LENGTH_SHORT).show(); } }); } 

3) Создайте новый XML-файл в каталоге res / values ​​/ с именем attrs.xml. Вставьте следующее:

 <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="HelloGallery"> <attr name="android:galleryItemBackground" /> </declare-styleable> </resources> 

4) Вернитесь к своему .java-файлу и после onCreate(Bundle) определите собственный класс ImageAdapter :

 public class ImageAdapter extends BaseAdapter { int mGalleryItemBackground; private Context mContext; private Integer[] mImageIds = { R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7 }; public ImageAdapter(Context c) { mContext = c; TypedArray attr = mContext.obtainStyledAttributes(R.styleable.HelloGallery); mGalleryItemBackground = attr.getResourceId( R.styleable.HelloGallery_android_galleryItemBackground, 0); attr.recycle(); } public int getCount() { return mImageIds.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView = new ImageView(mContext); imageView.setImageResource(mImageIds[position]); imageView.setLayoutParams(new Gallery.LayoutParams(150, 100)); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setBackgroundResource(mGalleryItemBackground); return imageView; } } 

Ну … код очень прост, но здесь вы можете ссылаться на оригинальный и более длинный документ .

Я не уверен, но я думаю, что это Галерея ( http://developer.android.com/reference/android/widget/Gallery.html ), которая отправляет обратные вызовы в ViewPager.

Здесь вы можете найти пример кода: http://www.androidpeople.com/android-gallery-example

Вместо тоста вам нужно вызвать обратный вызов и настроить нужную страницу.

Я думаю, что он захочет, что захочешь! 🙂

Intereting Posts
Камера на Android-примере Java.lang.IllegalStateException: ViewPager не был связан (с использованием индикатора JakeWharton ViewPager) Как подключиться к моему http: // localhost веб-серверу от Android Emulator в Eclipse Могу ли я использовать Pull для обновления без использования ScrollView / ListView? Rich Chart на iOS – BB – Android с похожим внешним видом Высота линии опоры для Android HTTP Получить Android с Basic Auth Запуск активности из строки состояния создает новую активность, даже если она уже существует Предотвратите запуск Android Studio / Intellij Idea при запуске Время в йоде потребляет слишком много памяти Добавить диалоговое окно прогресса в sherlock панели действий из фрагмента sherlock Опции для отображения карты в приложении PhoneGap для Android IllegalArgumentException: Получатель не зарегистрирован: com.google.android.gms.common.api Как удалить медленный конец анимации с помощью ObjectAnimator? Как проверить (цифровую) идеальную для пикселя разработку в Android?