2016-10-01 2 views
0

Привет, ребята и девушки, когда я запускаю фрагмент, вид из моего основного класса все еще отображается, поэтому кнопки отображаются во время всей программы. Мне интересно, что может быть самым простым решением этой проблемы. Нужно ли сделать фрагмент для двух кнопок, а затем запустить другой фрагмент из фрагмента, содержащего кнопки? Есть ли способ скрыть представление из основного класса, пока отображается фрагмент? Любые советы очень ценятся. Я искал какое-то решение какое-то время.MainActivity все еще отображается с фрагментом

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Arrays.sort(lContacts,Contact.ContactNameComparator); 

    for(int i = 0; i< lContacts.length;i++){ 
     mLnames[i] = lContacts[i].getLname(); 

    } 
    mQuoteArray = getResources().getStringArray(R.array.Quotes); 

    setContentView(R.layout.activity_main); 

    btnnames = (Button) findViewById(R.id.btnlaunch); 
    btndepartments = (Button) findViewById(R.id.btndepartments); 
    btnnames.setOnClickListener(myhandler1); 
    btndepartments.setOnClickListener(myhandler2); 

    mTitleFrameLayout = (FrameLayout) findViewById(R.id.title_fragment_container); 
    mQuotesFrameLayout = (FrameLayout) findViewById(R.id.quote_fragment_container); 


    mFragmentManager = getFragmentManager(); 
    fragmentTransaction = mFragmentManager 
      .beginTransaction(); 

    mFragmentManager 
      .addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() { 
       public void onBackStackChanged() { 
        setLayout(); 
       } 
      }); 

} 

View.OnClickListener myhandler1 = new View.OnClickListener() { 
    public void onClick(View v) { 
     mFragmentManager = getFragmentManager(); 
     FragmentTransaction fragmentTransaction = mFragmentManager 
       .beginTransaction(); 
     fragmentTransaction.add(R.id.title_fragment_container, 
       new TitlesFragment()); 
     fragmentTransaction.commit(); 


    } 

}; 

View.OnClickListener myhandler2 = new View.OnClickListener() { 
    public void onClick(View v) { 

    } 

}; 

private void setLayout() { 
    if (!mQuoteFragment.isAdded()) { 
     mTitleFrameLayout.setLayoutParams(new LinearLayout.LayoutParams(
       MATCH_PARENT, MATCH_PARENT)); // width, height 
     mQuotesFrameLayout.setLayoutParams(new LinearLayout.LayoutParams(0, 
       MATCH_PARENT)); 
    } else { 
     mTitleFrameLayout.setLayoutParams(new LinearLayout.LayoutParams(0, 
       MATCH_PARENT, 1f)); // width, height, weight 
     mQuotesFrameLayout.setLayoutParams(new LinearLayout.LayoutParams(0, 
       MATCH_PARENT, 2f)); 
    } 
} 



@Override 
public void onListSelection(int index) { 
    if (!mQuoteFragment.isAdded()) { 
     FragmentTransaction fragmentTransaction = mFragmentManager 
       .beginTransaction(); 
     fragmentTransaction.add(R.id.quote_fragment_container, 
       mQuoteFragment); 
     fragmentTransaction.addToBackStack(null); 
     fragmentTransaction.commit(); 
     mFragmentManager.executePendingTransactions(); 
    } 
    if (mQuoteFragment.getShownIndex() != index) { 
     mQuoteFragment.showIndex(index); 
    } 
} 

ответ

0

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

  1. Сделать Fragment у вас есть прямо сейчас другая деятельность

  2. Сделать активность (Основной класс) вид быть пустыми и иметь два фрагмента: один что у вас есть прямо сейчас и еще один, который содержит взгляды Деятельности вместе со своими слушателями и действиями. Таким образом, если вы хотите переключиться на другой фрагмент, вам просто нужно скрыть фрагмент представления основного класса.

Надеюсь, это имеет смысл.

+0

Я закончил тем, что оставил две кнопки на Mainactivity, затем сделал пустую операцию для фрагментов. Спасибо за предложения! – user3264060

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