2016-04-30 2 views
0

В моей основной деятельности я создал FrameLayout. Я добавил Button и Background Image это он.Как полностью удалить фон макета

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="56dp" 
    android:id="@+id/header_layout" 
    android:background="@drawable/top_header" 
    > 

<Button 
    android:layout_width="25dp" 
    android:layout_height="25dp" 
    android:layout_marginLeft="10dp" 
    android:id="@+id/btn_openDrawer" 
    android:background="@drawable/more" 
    android:layout_gravity="center|left" 
    /> 
</FrameLayout> 

В нескольких фрагментах я использую этот заголовок.

Но в одном из фрагментов мне нужна кнопка без фонового изображения.

Я пробовал почти все: от opacity до alpha(0), но в каждом случае он не забирает место, занимаемое Frame Layout. Он начинает отображать цвет white transparent, когда я удаляю или уменьшаю прозрачность изображения.

Я хочу, чтобы это место занимало только эта кнопка enter image description here. и поместите содержимое фрагментов над ним.

Прямо сейчас она занимает 56dp высоту, которую я определил для Frame Layout и начинает отображать содержимое Fragment Layout после высоты заголовка, который 56dp.

Если я меняю высоту Frame Layout на 0dp, он также перестает отображать кнопку.

Главная активность

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:id="@+id/home_layout" 
    > 

    <include layout="@layout/header_layout"/> 
    <include layout="@layout/content_home" /> 

</LinearLayout> 
//NavigationView... 

HomeActivity.Java

 switch (item.getItemId()){ 

      case R.id.nav_home: 
       fragmentTransaction= getSupportFragmentManager().beginTransaction(); 
       fragmentTransaction.replace(R.id.main_container,new MainActivity()); 
       fragmentTransaction.commit(); 
       item.setChecked(true); 
       drawerLayout.closeDrawers(); 
       break; 

//This Code is displaying Header With Image 

      case R.id.nav_more: 
       fragmentTransaction= getSupportFragmentManager().beginTransaction(); 
       fragmentTransaction.replace(R.id.main_container, new MoreActivity()); 
       fragmentTransaction.commit(); 
       item.setChecked(true); 
       drawerLayout.closeDrawers(); 
       break; 
     } 

Просьба направлять меня, я просто застрял в это в течение более чем 8 часов в настоящее время.

Thanks

ответ

1

Попробуйте установить фон прозрачным.

FrameLayout frameLayout = (FrameLayout) findViewById(R.id.header_layout); 
frameLayout.setBackgroundColor(0x00000000); 

Первые 2 нуля для прозрачности. Вы также можете создать header_layout динамически и установить его фон по мере необходимости.

+0

Спасибо, Этот код добавляет белую рамку в месте изображения, и по-прежнему принимает '56dp' height и запускает другой макет после' 56dp' – Kirmani88

1

в кадре макет вместо андроида: layout_height = «56dp» записи андроид: layout_height = «wrap_content»

+0

Спасибо, я хочу, чтобы размер заголовка был 56dp, если я определяю 'wrap_content', он займет больше высоты, чем требуется. – Kirmani88

Смежные вопросы