2
.

. Я пытаюсь заставить мой scrollable tab работать (прокрутка как меню в Google Play). Я использую android.support.v4.app.FragmentTabHost в качестве вкладки хоста и android.support.v4.app.Fragment как фрагменты. Все работает, за исключением того, что хост-узел не прокручивается (для функции прокрутки я использую HorizontalScrollView). Если я изменю tabhost на стандарт android.widget.TabHost и активность до TabActivity, то он будет работать. Поэтому я предполагаю, что с FragmentTabHost есть что-то, что ScrollView не работает.Я хочу, чтобы мои вкладки прокручивались, но это не работает при использовании FragmentTabHost.

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.app.FragmentTabHost 
     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: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="horizontal"> 
      <TabWidget 
        android:id="@android:id/tabs" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_weight="0" 
        android:orientation="horizontal" /> 
     </HorizontalScrollView> 

      <FrameLayout android:id="@android:id/tabcontent" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" > 
     </FrameLayout> 
    </LinearLayout> 

</android.support.v4.app.FragmentTabHost> 

А вот некоторый код FragmentTabHost:

public class MyTabActivity extends FragmentActivity { 

private FragmentTabHost mTabHost; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.news); 

    mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost); 
    mTabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent); 



    mTabHost.addTab(
      mTabHost.newTabSpec("tab1").setIndicator("Tab 1", 
        getResources().getDrawable(android.R.drawable.star_on)), 
      FragmentTab.class, null); 
    mTabHost.addTab(
      mTabHost.newTabSpec("tab2").setIndicator("Tab 2", 
        getResources().getDrawable(android.R.drawable.star_on)), 
      FragmentTab.class, null); 
    mTabHost.addTab(
      mTabHost.newTabSpec("tab3").setIndicator("Tab 3", 
        getResources().getDrawable(android.R.drawable.star_on)), 
      FragmentTab.class, null); 
    ...... 
    ...... 

Если добавить дополнительные вкладки, вкладки просто получить меньше по размеру экрана. Свиток никогда не появляется, но я хочу, чтобы он прокручивался!

Что не так?

+0

Что вы имеете в виду - это «ViewPager» с «PagerTitleStrip», а не «FragmentTabHost». – Luksprog

+0

Не 'ViewPager' для раздвижения всего экрана? Или можно скользить часть экрана с помощью «ViewPager»? – Rox

+0

Вы можете использовать ViewPager для прокрутки всего содержимого или части его содержимого. http://developer.android.com/training/animation/screen-slide.html – Luksprog

ответ

0

Использование Viewpager - отличная идея ... Однако ... если вы хотите остаться с этой реализацией, рассмотрите этот XML-макет.

<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" 
      android:layout_gravity="bottom"/> 
     </HorizontalScrollView> 

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

  • Нет связанных вопросов^_^