2

Я начал кодирование, и мне это очень нравится, я был вкл/выкл в другом проекте (чтобы узнать разные вещи) Но теперь у меня проблема, я «приложение» отсылает всю помощь, которую я могу получить.Как установить временный фрагмент на мой «домашний экран» Студия Android

Я использую навигационный ящик и получил три фрагмента. Я могу перемещаться по ящику навигации и выбирать фрагмент, и он загружается на моем экране. Но когда я запускаю свое приложение, экран просто белый, а ящик навигации слева, и я могу выбрать фрагмент. Возможно ли иметь фрагмент на моем «домашнем экране», поэтому, когда я запускаю приложение, фрагмент уже размещен на экране НО! когда я хожу еще один фрагмент в навигационном ящике, я хотел бы, чтобы мой фрагмент, который загрузился в начале, исчез. В противном случае оба фрагмента будут отображаться на каждой стороне (текст в тексте). Может быть, временный фрагмент «как-нибудь» закончится. Пожалуйста, посмотрите мою картинку imgur, чтобы получить мою идею. Imgur image press here to view

+0

Вы можете просто поместить любой 'Fragment' в свой' onCreate() 'метод внутри вашей' Activity'. Посмотрите на «FragmentManager». –

ответ

2

Вот общее решение о том, как использовать FragmentManager. Это должно дать хорошее представление о том, как отображать Fragment. Кроме того, вы можете включить в свой макет статический фрагмент. Это зависит от вас, как подойти к нему.
Так FragmentManager решение выглядит следующим образом:

YourActivity.java

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     FragmentManager fragmentManager = getFragmentManager(); 
     Fragment fragment = AnyFragment.instantiate(this, AnyFragment.class.getName()); 
     fragmentManager.beginTransaction().add(R.id.fragment_placeholder, fragment).addToBackStack(null).commit(); 
    } 

идентификатора целевого объекта определяется в вашей деятельности layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <FrameLayout 
     android:id="@+id/fragment_placeholder" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"></FrameLayout> 
</LinearLayout> 

Позже, если вы хотите, чтобы заменить текущий фрагмент вы можете использовать remove и add me thod of FragmentManager (метод replace является своеобразным багги).

Fragment currentFragment = fragmentManager.findFragmentById(R.id.fragment_placeholder)) 
fragmentManager.beginTransaction().remove(currentFragment).add(R.id.fragment_placeholder, yourNewFragment).addToBackStack(null).commit(); 
+0

Ty Murat Я попробую код, когда вернусь домой! Обычно сидит 2-4 часа, когда я возвращаюсь домой с работы, хе-хе :). – Tim

+1

Привет, он работал !!! Я использовал этот код, и он отлично работал! <@Override public void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); FragmentManager fragmentManager = getFragmentManager(); Фрагмент фрагмента = AnyFragment.instantiate (это, AnyFragment.class.getName()); fragmentManager.beginTransaction(). Add (R.id.fragment_placeholder, фрагмент) .addToBackStack (null) .commit(); } – Tim

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