2016-10-01 68 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

我認爲應該使用片段,如果你想添加一個視圖,以及與它一起的活動,到活動。所以我不認爲你可以隱藏活動視圖,或者至少我不認爲這是一個很好的編程習慣。因此,有兩種解決方案可以解決這個問題:

  1. 製作的片段,你現在所擁有的另一個活動

  2. 使活動(主類)視圖是空的,有兩個片段:一個您現在擁有了另一個包含活動視圖以及他們的聽衆和操作的視圖。這樣,如果你想切換到其他片段,你只需要隱藏主類視圖片段。

我希望這是有道理的。

+0

我最終在Mainactivity上留下了兩個按鈕,然後爲這些碎片做了一個空白的活動。感謝你的建議! – user3264060