1

Я пытаюсь сделать операцию, содержащую два фрагмента. Первый имеет 3 вложенных фрагмента, которые я буду использовать в качестве вкладок, а второй содержит только кнопки. Я не хочу добавлять фрагменты кнопок в другие фразы, потому что я не хочу перезагружать их. Прямо сейчас у меня нет ошибок, но фрагмент кнопок не отображается. Вот мои фрагменты и моя деятельность.Фрагмент не отображается

моя основная деятельность:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR); 

    setContentView(R.layout.activity_main); 

    Fragment statistics = new StatisticsFragment(); 
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
    transaction.add(R.id.fragment_statistics, statistics).commit(); 

    Fragment buttons = new MainPageButtonsFragment(); 
    FragmentTransaction buttonsTransaction = getSupportFragmentManager().beginTransaction(); 
    buttonsTransaction.add(R.id.main_page_buttons_fragment,buttons).commit(); 

его расположение

<RelativeLayout android:orientation="vertical" > 
<FrameLayout 
    android:id="@+id/fragment_statistics" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" /> 

<FrameLayout 
    android:id="@+id/main_page_buttons_fragment" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/fragment_statistics"/> 

Я не буду писать мои кнопки фрагмент, потому что это не нужно, я скажу только его корень тег FrameLayout.

моя статистика фрагмент (одна с вкладками)

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

    Fragment currentDayFragment = new CurrentDayFragment(); 
    FragmentTransaction transaction1 = getChildFragmentManager().beginTransaction(); 
    transaction1.add(R.id.current_day_fragment, currentDayFragment).commit(); 

    Fragment configurationInfoFragment = new ConfigurationInfoFragment(); 
    FragmentTransaction transaction2 = getChildFragmentManager().beginTransaction(); 
    transaction2.add(R.id.configuration_info_fragment, configurationInfoFragment).commit(); 

    Fragment expensesInfoFragment = new ExpensesInfoFragment(); 
    FragmentTransaction transaction3 = getChildFragmentManager().beginTransaction(); 
    transaction3.add(R.id.expenses_info_fragment, expensesInfoFragment).commit(); 

    LayoutInflater lf = getActivity().getLayoutInflater(); 

    View statisticsView = lf.inflate(R.layout.fragment_statistics, container, false); 

    return statisticsView; 
} 

его расположение:

<FrameLayout > 

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <FrameLayout 
     android:id="@id/current_day_fragment" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 
    <FrameLayout 
     android:id="@id/configuration_info_fragment" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 
    <FrameLayout 
     android:id="@id/expenses_info_fragment" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 

</android.support.v4.view.ViewPager> 

вложенные фрагменты просто корневой тег FrameLayout и пару TextView с в нем. Результатом является только действие с 3 вкладками и без фрагмента кнопок. Я новичок в программировании на Android, и я полностью потерял в этом. Помоги пожалуйста!

ответ

0

Попробуйте использовать давая пользовательскую высоту, как это ... .

<RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     > 

     <FrameLayout 
      android:id="@+id/fragment_statistics" 
      android:layout_width="fill_parent" 
      android:layout_height="250dp" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 

     <FrameLayout 
      android:id="@+id/main_page_buttons_fragment" 
      android:layout_width="fill_parent" 
      android:layout_height="250dp" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_alignParentBottom="true" /> 
    </RelativeLayout> 
+0

Теперь все в порядке! Ты мужчина! – Angel

0

Относительное расположение не имеет андроида: ориентация парам

я вещь первый фрагмент охватывает вторую относительную раскладку один

Изменить с LinearLayout

<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
    <FrameLayout 
     android:id="@+id/fragment_statistics" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 

    <FrameLayout 
     android:id="@+id/main_page_buttons_fragment" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/fragment_statistics"/> 
</LinearLayout> 
+0

спасибо @Settarxan, но это не проблема. Я попытался с LinearLayout, и результат тот же. Также LinearLayout не поддерживает параметр layout_below – Angel

+0

Теперь ваше первое действие видно, но второе не да? Вы хотите сначала отобразить второй фрагмент рядом с первым? –

+0

Да, я хочу, чтобы два фрагмента показывались одновременно, но не рядом друг с другом. Я хочу, чтобы второй был ниже первого. И первый фрагмент содержит 3 вкладки, которые я также реализовал как фрагменты. – Angel

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