6

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

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

У кого-нибудь есть идея об этом?

ответ

3

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

JakeWharton/Android-ViewPagerIndicator

+0

Привет, Calvin спасибо за сообщение Это сработало для меня. Я разрабатываю приложение для планшета. но вкладки не занимают ширину текстов>. Надеюсь, ты получишь то, что я имею в виду, он выглядит все перегруженным. Могу ли я определить ширину вкладки, в которой он содержит полный текст. например: если есть вкладка с надписью «Профиль пользователя», но она отображается только как «Пользователь» –

+0

@roses_r, просто удалите метод onMeasure (int, int) из класса TabPageIndicator библиотеки. Оно работает. – alu

5

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

+0

Привет, Calvin Спасибо за сообщение Это сработало для меня. Я разрабатываю приложение для планшета. но вкладки не занимают ширину текстов>. Надеюсь, ты получишь то, что я имею в виду, он выглядит все перегруженным. Могу ли я определить ширину вкладки, в которой он содержит полный текст. например: если есть вкладка с надписью «Профиль пользователя», но она отображается только как «Пользователь», –

0

Проверить эту ссылку: 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> 
12

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

<android.support.design.widget.TabLayout 
    android:id="@+id/categories" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:tabMode="scrollable" /> 
2
<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" Надеюсь, что это поможет

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