2017-01-24 6 views
0

Я создал приложение, когда тестирую мое приложение, или я нажал кнопку «Назад», мой фрагмент перекрывает другой фрагмент. Я не знаю, почему это происходит. Пожалуйста, помогите мне, мне нужна помощь .. Мои кодыФрагмент перекрывается

public class MainActivity extends AppCompatActivity { 

    private SharedPreferences pref; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     pref = getPreferences(0); 
     initFragment(); 
    } 

    private void initFragment(){ 
     Fragment fragment; 
     if(pref.getBoolean(Constants.IS_LOGGED_IN,false)){ 
      fragment = new ProfileFragment(); 
     }else { 
      fragment = new LoginFragment(); 
     } 
     FragmentTransaction ft = getFragmentManager().beginTransaction(); 
     ft.replace(R.id.fragment_frame,fragment); 
     ft.commit(); 
    } 
} 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    android:background="#ff51b46d" 
    tools:context="com.example.hldev.docup.MainActivity"> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:context="com.example.hldev.docup.MainActivity"> 

     <FrameLayout 
      android:id="@+id/fragment_frame" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 

    </LinearLayout> 
</android.support.design.widget.CoordinatorLayout> 

Uploads.java

 public class Uploads extends Fragment implements View.OnClickListener{ 

      @Nullable 
      @Override 
      public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
       View view=inflater.inflate(R.layout.activity_uploads, container, false); 
       ivAttachment = (ImageView)view.findViewById(R.id.ivAttachment); 

       tv_name = (TextView)view.findViewById(R.id.tv_name); 
       tv_email = (TextView)view.findViewById(R.id.tv_email); 
       bUpload = (Button)view.findViewById(R.id.b_upload); 
       tvFileName = (TextView)view.findViewById(R.id.tv_file_name); 
       ivAttachment.setOnClickListener(this); 
       bUpload.setOnClickListener(this); 
       return view; 
      } 


private void goToProfile(){ 

     Fragment profile = new ProfileFragment(); 
     FragmentTransaction ft = getFragmentManager().beginTransaction(); 
     ft.replace(R.id.fragment_frame,profile); 
     ft.commit(); 
    } 
    } 
+0

вместо замены попытки добавления. – Shekhar

+0

Я создал 3 фрагмента, все фрагменты перекрываются, я вызываю фрагмент его функцией private void goToProfile() { Профиль фрагмента = новый ПрофильFragment(); FragmentTransaction ft = getFragmentManager(). BeginTransaction(); ft.replace (R.id.fragment_frame, профиль); ft.commit(); }, но фрагмент перекрывается. – Misty

+0

Сделайте одну вещь, придайте фону как белый от каждого фрагмента, затем попробуйте. – Shekhar

ответ

0

Просто установить цвет фона для вашего нового <fragment /> в файле XML иначе он будет прозрачным и покажет замененный фрагмент.

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="schemas.android.com/apk/res/android"; 
    xmlns:tools="schemas.android.com/tools"; 
    android:id="@+id/frag24" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/green"> 
     <!-- Your Content --> 
     </RelativeLayout> 
</FrameLayout > 
+0

, пожалуйста, поделитесь примером – Misty

+0

Я добавил его, но когда я поворачиваю экран и нажимаю на кнопку кнопки, фрагмент кнопки перекрывается. – Misty

+0

@sangavi, когда вы помещаете код, ставьте его в ответ, а не на комментарий ответа. –

0

установить белый цвет фона вашего родительского макета вашего activity_uploads. также делают то же самое со всеми макетами, которые вы используете в Fragment.

+0

но если я хочу фрагментировать цвет зеленый ?? как я могу добавить его? – Misty

+0

Просьба поделиться примером кодирования – Misty

+0

, тогда вам нужно добавить строку android: background = "# 00FF00" в родительский макет вашего XML. –

0

замените ваш код ниже.

<RelativeLayout xmlns:android="schemas.android.com/apk/res/android" 
    xmlns:tools="schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@android:color/holo_green_dark" 
    tools:context="com.example.hldev.docup.Uploads"> 
+0

спасибо. Позвольте мне попробовать – Misty

+0

Испытываете ли вы это? –

+0

Я добавил андроид: background = "@ color/frag" во всех фрагментах – Misty

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