1

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

xml деятельности.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="@color/colorPrimary" 
    android:minHeight="?attr/actionBarSize" 
    app:navigationIcon="@drawable/ic_close_black_24dp" 
    app:popupTheme="@style/Theme.AppCompat.NoActionBar" 
    app:titleTextColor="@color/toolbarTextColor" /> 

<android.support.design.widget.TextInputLayout 

    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:inputType="textMultiLine" 
     android:lines="3" 
     android:maxLines="10" 
     android:scrollbars="vertical" /> 


</android.support.design.widget.TextInputLayout> 

</LinearLayout> 

Фрагмент

<?xml version="1.0" encoding="utf-8"?> 
    <FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@color/colorPrimary" 
     android:minHeight="?attr/actionBarSize" 
     app:navigationIcon="@drawable/ic_close_black_24dp" 
     app:popupTheme="@style/Theme.AppCompat.NoActionBar" 
     app:titleTextColor="@color/toolbarTextColor" /> 

    <TextView 
     android:id="@+id/firstnameTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="@dimen/activity_horizontal_margin" 
     /> 

    <TextView 
     android:id="@+id/lastnameTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="@dimen/activity_horizontal_margin" 
     /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     android:text="Chat" /> 

    <fragment 
     android:id="@+id/fragment_chat" 
     android:name="user.InitiateChat_Fragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</FrameLayout> 

The incorrect Image

private void init() { 
    final FragmentManager fragmentManager = getSupportFragmentManager(); 
    fragment = fragmentManager.findFragmentById(R.id.fragment_chat); 
    final FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
    fragmentTransaction.hide(fragment); 
    fragmentTransaction.commit(); 
} 

public void showChatForm() { 
    showHideFragment(fragment); 
} 

private void showHideFragment(final Fragment fragment) { 

    final FragmentTransaction fragTransaction = getSupportFragmentManager().beginTransaction(); 
    fragTransaction.setCustomAnimations(R.anim.fragment_slide_from_bottom, R.anim.fragment_slide_to_bottom); 

    if (fragment.isHidden()) { 
     fragTransaction.show(fragment); 
    } else { 
     fragTransaction.hide(fragment); 
    } 
    fragTransaction.commit(); 
} 

Код инициализации вызывается активности create.Fragment является глобальной переменной.

+0

отправить это помогает нам вести более –

+0

+0

Пожалуйста, замените макет для деятельности кареткой и добавьте фрагменты по своему усмотрению с помощью add() или replace(). Активность должна содержать только контейнер для хранения фрагментов. –

ответ

1

Попробуйте это:

<fragment 
    android:id="@+id/fragment_chat" 
    android:name="user.InitiateChat_Fragment" 
    android:layout_width="match_parent" 
    android:background="?android:attr/colorBackground" //add this 
    android:layout_height="match_parent" /> 

второй путь

Создание макета в вашем фрагменте и скрыть его видимость во время просмотра фрагмент

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@color/colorPrimary" 
     android:minHeight="?attr/actionBarSize" 
     app:navigationIcon="@drawable/ic_close_black_24dp" 
     app:popupTheme="@style/Theme.AppCompat.NoActionBar" 
     app:titleTextColor="@color/toolbarTextColor" /> 

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

     <TextView 
      android:id="@+id/firstnameTextView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="@dimen/activity_horizontal_margin" /> 

     <TextView 
      android:id="@+id/lastnameTextView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="@dimen/activity_horizontal_margin" /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 

      android:text="Chat" /> 

    </LinearLayout> 

    <fragment 
     android:id="@+id/fragment_chat" 
     android:name="user.InitiateChat_Fragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</FrameLayout> 

Теперь в вашем коде:

private void showHideFragment(final Fragment fragment) { 

    final FragmentTransaction fragTransaction = getSupportFragmentManager().beginTransaction(); 
    fragTransaction.setCustomAnimations(R.anim.fragment_slide_from_bottom, R.anim.fragment_slide_to_bottom); 

    if (fragment.isHidden()) { 
     fragTransaction.show(fragment); //show fragment 
     layout.setVisibility(View.GONE); //hide Linearlayout 
    } else { 
     fragTransaction.hide(fragment); 
    } 
    fragTransaction.commit(); 
} 

Где скриншот LinearLayout layout =(LinearLayout)findViewById(R.id.activity_button);

+0

Как-то, что казалось работать, я просто добавил часть xml, и это было хорошо. –

0

Попробуйте добавить цвет фона вашего фрагмента, как этот

<?xml version="1.0" encoding="utf-8"?> 
    <FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#ffffff" /* Add any color you want */ 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools"> 
+0

, который не работает, кнопка все еще отображается над фрагментом. –