Фрагмент имеет белый фон по умолчанию вместо replace () вместо прозрачного

Я столкнулся с какой-то странной проблемой при использовании фрагментов и просто не могу понять это.

Когда я заменяю фрагменты внутри контейнера MainActivity, некоторые будут сохранять желаемый прозрачный фон, а некоторые будут отображаться как белый. Я действительно хочу, чтобы все мои фрагменты были прозрачными и «использовали» фон, назначенный MainActivity.

Например: Фрагмент A: белый фон

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/image" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:paddingLeft="10dp" android:paddingRight="10dp" android:src="@drawable/logo"/> <de.mypackage.uielements.MyButton android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:text="@string/button_text"/> **<!-- ListView to show news -->** <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent" android:dividerHeight="1dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginBottom="10dp"/> </LinearLayout> 

Фрагмент B: прозрачный фон

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> 

main.xml

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!-- Background Image to be set programmatically, transparent being default --> <ImageView android:id="@+id/window_background_image_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:background="@android:color/transparent"/> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent"> <!-- Top ScrollView --> <de.opwoco.app.android.apptitan.app.utils.HorizontalListView android:id="@+id/navigation_tab_listview" android:layout_width="match_parent" android:layout_height="50dp" android:visibility="gone" android:background="@color/navigation_background"/> <!-- FrameLayout container where all other fragments are placed --> <FrameLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" android:layout_below="@+id/navigation_tab_listview"/> </RelativeLayout> <fragment android:id="@+id/navigation_drawer" android:layout_width="@dimen/navigation_drawer_width" android:layout_height="match_parent" android:layout_gravity="start" android:name="de.mypackage.fragment.NavigationDrawerFragment" tools:layout="@layout/fragment_navigation_drawer"/> </android.support.v4.widget.DrawerLayout> 

Оба фрагмента заменяются следующим фрагментом:

 android.support.v4.app.FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.container, fragment); transaction.commit(); 

Поэтому мой вопрос:

Как я могу достичь того, что все фрагменты в моем контейнере имеют прозрачный фон, так что я всегда показываю фон, назначенный в MainActivity?

Solutions Collecting From Web of "Фрагмент имеет белый фон по умолчанию вместо replace () вместо прозрачного"

Вы можете использовать следующее свойство для всех корневых макетов, представлений, фрагментов, контейнеров и т. Д .:

 android:background="@android:color/transparent" 

Если вы хотите отобразить фон своей деятельности только тогда, все представления должны быть прозрачными.

Для этого вам нужно установить android:background="@android:color/transparent" для каждого вида, кроме MainActivity . Т.е. фон для

  • Fragment s
  • Их ребенок View s
  • ListView (ы)
  • И элементы ListView / childs и т. Д.

Короче говоря, каждый вид должен иметь прозрачный фон, чтобы фон Актив не перекрывался и не был видимым пользователю.

Это слишком просто, просто установите фон как #00000000 .

Или перейдите на вкладку дизайна и установите фон на #00000000 .