Привет, ребята и девушки, когда я запускаю фрагмент, вид из моего основного класса все еще отображается, поэтому кнопки отображаются во время всей программы. Мне интересно, что может быть самым простым решением этой проблемы. Нужно ли сделать фрагмент для двух кнопок, а затем запустить другой фрагмент из фрагмента, содержащего кнопки? Есть ли способ скрыть представление из основного класса, пока отображается фрагмент? Любые советы очень ценятся. Я искал какое-то решение какое-то время.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);
}
}
Я закончил тем, что оставил две кнопки на Mainactivity, затем сделал пустую операцию для фрагментов. Спасибо за предложения! – user3264060