Как реализовать горизонтально прокручиваемые вкладки? - PullRequest
7 голосов
/ 14 марта 2012

Я пытаюсь реализовать это приложение. На данный момент я разработал вкладки на нем, и так как у меня более 7 вкладок, он выглядит слишком перегруженным. Как я могу сделать так, чтобы вкладка была с горизонтальной прокруткой. Я видел этот дизайн на нескольких приложениях на рынке, но понятия не имел, как реализовать это в моем приложении.

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

Так кто-нибудь имеет представление об этом?

Ответы [ 5 ]

13 голосов
/ 14 января 2016

TabLayout из библиотеки дизайна Android

<android.support.design.widget.TabLayout
    android:id="@+id/categories"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:tabMode="scrollable" />
5 голосов
/ 14 марта 2012

Это довольно хороший пример с использованием HorizontalScrollView.http://java.dzone.com/articles/scrolling-tabs-android

3 голосов
/ 14 марта 2012

Пожалуйста, проверьте приложение ViewPager Джейка Уортона.Это именно то, что вам нужно.Это библиотечный проект, поэтому вы должны включить его в свой проект.

JakeWharton / Android-ViewPagerIndicator

2 голосов
/ 31 января 2016
<HorizontalScrollView 
    android:id="@+id/vTabs" 
    android:scrollbars="none" 
    android:layout_width="fill_parent" 
    android:layout_alignParentBottom="true"
    android:layout_height="wrap_content">
    <LinearLayout 
        android:orientation="horizontal" 
        android:background="@color/main_color_gray_dk" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">
        <Button 
            android:enabled="false" 
            android:id="@+id/tab1" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="@string/popular" />
        <View 
            android:id="@id/view1" 
            android:layout_width="@dimen/pad_1dp" 
            android:layout_height="fill_parent" />
        <Button 
            android:id="@id/tab2" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="@string/newest" />
        <View 
            android:id="@id/view1" 
            android:layout_width="@dimen/pad_1dp" 
            android:layout_height="fill_parent"  />
        <Button 
            android:id="@id/tab3" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="@string/distance" />
        <View 
            android:id="@id/view1" 
            android:layout_width="@dimen/pad_1dp" 
            android:layout_height="fill_parent"  />
        <Button 
            android:id="@+id/tab4" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="@string/minimum"  />
    </LinearLayout>
</HorizontalScrollView>

Измените тексты на свой вкус.Поместите в relatveLayout и alignToParentBottom = "true" Надеюсь, это поможет

0 голосов
/ 24 октября 2015

Проверьте эту ссылку: https://dzone.com/articles/scrolling-tabs-android

Оберните ваш TabWidget объектом HorizontalScrollView, и набор вкладок сможет расширяться за пределы ширины экрана, а пользователь может перетаскивать вкладки влево и вправопо мере необходимости:

<?xml version="1.0" encoding="utf-8"?><TabHost xmlns:android="http://schemas.android.com/apk/res/android"         android:id="@android:id/tabhost"         android:layout_width="fill_parent"         android:layout_height="fill_parent">  <LinearLayout android:orientation="vertical"                android:layout_width="fill_parent"                android:layout_height="fill_parent">    <HorizontalScrollView android:layout_width="fill_parent"                          android:layout_height="wrap_content"                          android:fillViewport="true"                          android:scrollbars="none">      <TabWidget android:id="@android:id/tabs"                 android:layout_width="fill_parent"                 android:layout_height="wrap_content"/>    </HorizontalScrollView>    <FrameLayout android:id="@android:id/tabcontent"                 android:layout_width="fill_parent"                 android:layout_height="fill_parent" />  </LinearLayout></TabHost>
...