2

Я хочу создать макет, в котором верхняя половина - это просто область с нормальным видом, а нижняя половина - макет вкладки.TabHost внутри фрагмента активности

something like this

Я видел несколько примеров, но все они, как создавать вкладки на уровне активности т.е. за счет расширения TabHostActivity, которая охватывает всю область деятельности. Итак, я решил создать 2 фрагмента в действии, в которых нижний фрагмент будет иметь tablayout. Но проблема в том, что я не могу сделать этот класс фрагмента расширенным фрагментом, а также TabHostActivity ... Итак, любая помощь, как я мог реализовать это?

Вот код нижестоящего фрагмента -

public class PFrag extends Fragment { 
    View mRoot; 
    TabHost tabHost; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     mRoot = inflater.inflate(R.layout.payfrag, container, false); 
     try { 
      Resources resources = getResources(); 
      tabHost = (TabHost)mRoot.findViewById(R.id.tabHost); 

      Intent netbintent = new Intent(getActivity().getApplicationContext(), NB.class); 
      TabHost.TabSpec tabSpecNB = tabHost.newTabSpec("NB"); 
      tabSpecNB.setIndicator("", resources.getDrawable(R.drawable.netb)); 
      tabSpecNB.setContent(netbintent); 

      Intent ccardintent = new Intent(getActivity().getApplicationContext(), Cc.class); 
      TabHost.TabSpec tabSpecCc = tabHost.newTabSpec("CC"); 
      tabSpecCc.setIndicator("", resources.getDrawable(R.drawable.cc)); 
      tabSpecCc.setContent(ccardintent); 


      tabHost.addTab(tabSpecNB); 
      tabHost.addTab(tabSpecCc); 
     } catch(Exception e) { 
      AlertDialog.Builder ad = new AlertDialog.Builder(getActivity().getApplicationContext()); 
      ad.setMessage(e.toString()); 
      ad.show(); 
     } 

     return mRoot; 
    } 
} 
+0

Вы нашли ответ на свой вопрос? –

+0

nah, я был в спешке, чтобы завершить проект, просто изменил макет -_-, использовал простой макет с вкладками вместо фрагмента Обязательно попробуйте и опубликуйте ответ, как только я получу его :) – user3820753

ответ

0

Похоже, вам нужно использовать FragmentTabHost внутри «дна» фрагмента.

Еще одна ссылка, которая может помочь вам here.

Кроме того, похоже, что он работает только в API 17 и выше, поэтому обязательно имейте это в виду!

0

Я не буду рекомендовать FragmentTabHost его как-то сложно использовать и не пробираться влево-вправо. TabHostActivity также устарел, используйте SlidingTabLayout с открытым исходным кодом и легко использовать и обновлять и прокручивать.

SlidingTabLayout