フラグメントを起動すると、メインクラスのビューが表示されますので、プログラム全体でボタンが表示されます。この問題の最も単純な解決策は何かと思います。私は2つのボタンのためのフラグメントを作成し、その後、ボタンを含むフラグメントから別のフラグメントを起動する必要がありますか?フラグメントが表示されている間、メインクラスからビューを隠す方法はありますか?すべてのヒントは非常に高く評価されています。私はしばらくの間、解決策を探してきました。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の2つのボタンを残してしまい、フラグメントのためのブランクアクティビティを作成しました。提案していただきありがとうございます! – user3264060