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);
}
}
我最終在Mainactivity上留下了兩個按鈕,然後爲這些碎片做了一個空白的活動。感謝你的建議! – user3264060