0

Как я могу поместить вкладки внутри моего фрагмента? Я боролся с этим и очень ценю некоторую помощь.Android: Фрагмент с вкладками

В настоящее время я получаю эту ошибку: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'?

Однако, даже когда я добавить вызов к этому я все еще получаю фатальную аварию с ошибкой: Must call setup() that takes a Context and FragmentManager

Это, кажется, противоречат друг другу ... .

Ниже приведен соответствующий Java и XML:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    super.onCreateView(inflater, container, savedInstanceState); 

    View v = inflater.inflate(R.layout.fragment_profile, container, false); 

    mTabHost = new FragmentTabHost(getActivity()); 
    mTabHost.setup(getActivity().getApplicationContext(), getChildFragmentManager(), R.layout.testtabhost1); 

    //LocalActivityManager mLocalActivityManager = new LocalActivityManager(getActivity(), false); 
    //mLocalActivityManager.dispatchCreate(savedInstanceState); 
    //mTabHost.setup(mLocalActivityManager); 

    //LocalActivityManager mLocalActivityManager = new LocalActivityManager(getActivity(), false); 
    //mTabHost.setup(mLocalActivityManager); 

    Intent q_intent = new Intent (getActivity(), QuestionTabActivity.class); 
    Intent a_intent = new Intent (getActivity(), AnswerTabActivity.class); 

    View questionIndicator = createTabView(mTabHost.getContext(), "Questions"); 
    View answerIndicator = createTabView(mTabHost.getContext(), "Answers"); 

    mTabHost.addTab(mTabHost.newTabSpec("questions").setIndicator(questionIndicator).setContent(q_intent)); 
    mTabHost.addTab(mTabHost.newTabSpec("answers").setIndicator(answerIndicator).setContent(a_intent)); 

    mTabHost.setCurrentTab(0); 

    // Inflate the layout for this fragment 
    return v; 
} 

и XML:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.juryroom.qollege_android_v1.ProfileFragment"> 

    ......... 
    ...ETC... 
    ......... 

    <android.support.v4.app.FragmentTabHost 
     android:id="@+id/testtabhost1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@id/edit_profile_picture_fragment_circView" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="5dp"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

      <TabWidget 
       android:id="@android:id/tabs" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:showDividers="none"></TabWidget> 

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


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

......... 
...ETC... 
......... 

</FrameLayout> 

Вот дизайн взгляд, который я делаю: My Design

+1

Используйте новую библиотеку дизайна, я создал полный пример. https://github.com/erikcaffrey/MaterialDesign-NavigationDrawerToggle Я надеюсь, что это поможет! –

+0

http://stackoverflow.com/questions/3272500/android-exception-did-you-forget-to-call-public-void-setup-localactivitymanag –

+0

@KingofMasses Я видел это и пробовал ответить, но он не " t work – Pseduosance

ответ

0
mTabHost = (FragmentTabHost) v.findViewById(android.R.id.tabhost); 
    mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.realtabcontent); 
    mTabHost.addTab(mTabHost.newTabSpec(Constant.BuildingPicture.FRONT_PHOTOS).setIndicator(Constant.BuildingPicture.FRONT_PHOTOS),SiteDataFrontPhotoTab.class, null); 
    mTabHost.addTab(mTabHost.newTabSpec(Constant.BuildingPicture.SATELLITE_PHOTOS).setIndicator(Constant.BuildingPicture.SATELLITE_PHOTOS),SiteDataSatellitePhotoTab.class, null); 
+0

Как это отличается от того, что я пробовал? – Pseduosance

0

Для отображения вкладок мы не должны использовать любой другой элемент пользовательского интерфейса, как TabHost. Панель действий имеет встроенную возможность добавления вкладок. Все, что нам нужно сделать, это включить его с помощью setNavigationMode (ActionBar.NAVIGATION_MODE_TABS).

Here - хорошее описание того, что вы ищете.

+2

ссылка отсутствует –

+0

сейчас ее работа –

+0

Где я хочу, чтобы вкладки находились в фрагменте посередине на экране. Может ли это сделать панель действий? – Pseduosance

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

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