Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 片段彼此重叠…上一个片段正在单击_Android_Android Fragments_Android Activity - Fatal编程技术网

Android 片段彼此重叠…上一个片段正在单击

Android 片段彼此重叠…上一个片段正在单击,android,android-fragments,android-activity,Android,Android Fragments,Android Activity,我创建了一个应用程序,其中我有1个活动和8个片段,其中我将每个片段膨胀到活动中。但我的问题是,每个片段都相互重叠。我更改了每个片段的背景色,但当我单击上一个片段的空白按钮时,会被单击 请给我一些建议来摆脱这种局面 主活动类 public class ActRegistration extends AppCompatActivity { FragmentManager fm; @Override protected void onCreate(@Nullable Bundl

我创建了一个应用程序,其中我有1个活动和8个片段,其中我将每个片段膨胀到活动中。但我的问题是,每个片段都相互重叠。我更改了每个片段的背景色,但当我单击上一个片段的空白按钮时,会被单击

请给我一些建议来摆脱这种局面

主活动类

public class ActRegistration extends AppCompatActivity {
    FragmentManager fm;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_registration);
        fm = getSupportFragmentManager();
        loadFragment(new FragmentRegLogSkip(), FragmentRegLogSkip.FRAGMENT_KEY);
    }


    public void loadFragment(Fragment fragmentName, String fragmentKey) {
        FragmentTransaction fragmentTransaction = fm.beginTransaction();
        fragmentTransaction.add(R.id.id_registration_layout_frame, fragmentName);
        fragmentTransaction.addToBackStack(fragmentKey);
        fragmentTransaction.commit();
    }
}   
Frag_1.2级

public class FragmentRegLogSkip extends Fragment implements View.OnClickListener {
    private Activity activity;
    private Context context;
    public static final String FRAGMENT_KEY = "fragment_reg_log_skip";


    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        context = getContext();
        LanguageChanger.changeLanguage(context);
        View view = inflater.inflate(R.layout.act_registration_screen_login, container, false);
return view;
}
}
别忘了将android:clickable=true和android:focusable=true添加到第二个片段的父视图中,这样它就能捕捉到点击,而不会传播到下面的片段中。大概是这样的:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:focusable="true">   
别忘了将android:clickable=true和android:focusable=true添加到第二个片段的父视图中,这样它就能捕捉到点击,而不会传播到下面的片段中。大概是这样的:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:focusable="true">   

在第二个片段布局文件的父标记中,添加以下内容:-

android:clickable="true"
android:focusable="true"

然后,当您单击任何视图时,它将不会单击上一个片段。

在第二个片段布局文件的父标记内,添加以下内容:-

android:clickable="true"
android:focusable="true"
然后,当您单击任何视图时,它不会单击上一个片段。

您使用的是fragmentTransaction.add,它不会删除上一个片段-如果希望删除另一个片段的视图,请使用fragmentTransaction.replace

注意:FragmentManager在重新创建活动时(即savedInstanceState!=无效的因此,您需要确保只添加一次初始片段-当savedInstanceState为null时

您使用的是fragmentTransaction.add,它不会删除上一个片段-如果希望删除另一个片段的视图,请使用fragmentTransaction.replace

注意:FragmentManager在重新创建活动时(即savedInstanceState!=无效的因此,您需要确保只添加一次初始片段-当savedInstanceState为null时



这会发生什么情况?如果我按back press并得到与a->b相同的屏幕,然后按back press将在a中的按钮将起作用???\n将上述代码添加到两个片段中,并且如果使用add方法而不是replace,则在视图中添加实心背景。这样两个片段就不会重叠了。已经共享了相同的代码我已经勾选了正确的答案。。你的答案是无效的。。正如你所建议的,我在每个片段中添加了这两行,但它不起作用,我面临同样的问题,它对我起作用。共享您的xml代码。这样会发生什么?如果我按back press并获得与a->b相同的屏幕,然后按back press将在a中的按钮将起作用???\n在您的两个片段中添加上述代码,并且如果您使用add方法而不是replace,则在视图中添加实心背景。这样两个片段就不会重叠了。已经共享了相同的代码我已经勾选了正确的答案。。你的答案是无效的。。正如你所建议的,我在每个片段中添加了这两行,但它不起作用,我面临同样的问题,它对我起作用。共享您的xml代码。它是否可以在8个片段上工作,并且当我按backpress并返回到上一个片段时,将单击event(事件)仍然可以在顶部片段上工作是的,它可以工作,使用此选项,可以随意向上投票并接受。不起作用我在每个片段的父布局xml中添加了这行,但不起作用它会在8个片段上相互作用吗?当我按backpress并返回到上一个片段时,将单击event(事件)仍然对顶部片段起作用是的,它会起作用,不工作我在每个片段的父布局xml中添加了这行,但不工作,但是先生,有一个问题来自数据不存在…:这听起来像是一个完全独立的问题,所以我鼓励你用你现在看到的和你想看到的来创建一个完全独立的问题,但是先生,以前的数据中有一个问题不存在…:这听起来像是一个完全独立的问题,所以我鼓励你用你现在看到的和你想看到的来创建一个完全独立的问题