I have following fragment in my main xml file:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_activity_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/prayer_times_background"
tools:context="com.yceo.namazvakti.MainActivity">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/main_menu"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true">
</FrameLayout>
<ImageView
android:id="@+id/settingButton"
android:layout_width="@dimen/top_right_Button_height_width_size"
android:layout_height="@dimen/top_right_Button_height_width_size"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:padding="@dimen/top_right_button_pedding"
android:layout_marginTop="@dimen/top_right_Button_margin_top"
android:layout_marginRight="10dp"
android:layout_marginEnd="10dp"
android:src="@drawable/ic_menu_settings"
android:scaleType="fitCenter"/>
<fragment
android:id="@+id/main_menu"
android:name="com.yceo.namazvakti.fragments.MenuFragment"
android:layout_width="match_parent"
android:layout_height="@dimen/menu_layout_height"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
tools:layout="@layout/fragment_menu">
</fragment>
</RelativeLayout>
I am trying to hide @+id/main_menu
but I am not able to. I have tried following options but they did't work:
Get the fragment itself using
FragmentManager
and hide it withFragmentManager
FragmentManager fragmentManager = getSupportFragmentManager(); MenuFragment menuFragment = (MenuFragment)fragmentManager.findFragmentById(R.id.main_menu); fragmentManager.beginTransaction().hide(menuFragment).commit();
Get the fragment
View
and set it's visibility yoGONE
View activityRootView = findViewById(R.id.main_activity_layout); View fragmentMenu = activityRootView.findViewById(R.id.main_menu); fragmentMenu.setVisibility(View.GONE);
Can any one help me please ?
UPDATE:
To be more explicit. I have the following metod in my MainActivity
public void setMenuVisibility(int visibility){
Log.d(LOG_TAG, "MainActivity - setMenuVisibility");
switch (visibility) {
case View.VISIBLE:
Log.d(LOG_TAG, "MainActivity - setMenuVisibility - Showing menuFragment...");
break;
case View.GONE:
Log.d(LOG_TAG, "MainActivity - setMenuVisibility - Hiding menuFragment...");
break;
}
fragmentMenu.setVisibility(View.GONE);
if (menuFragment != null) {
View v = menuFragment.getView();
if (v != null)
v.setVisibility(visibility);
}
fragmentManager.beginTransaction().hide(menuFragment).commit();
}
And I am calling this metod from a Fragment:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mainActivity = (MainActivity)getActivity();
mainActivity.setSettingsButtonVisibility(View.GONE); <-- This works
mainActivity.setMenuVisibility(View.GONE); // <--- But this is not
View rootView = inflater.inflate(R.layout.fragment_quran_page, container, false);
backImageView = (ImageView)rootView.findViewById(R.id.back);
backImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getActivity().getSupportFragmentManager();
fm.popBackStack();
}
});
return rootView;
}