Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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 onClick在转换后不起作用_Android_Onclick_Android 4.4 Kitkat_Android Transitions - Fatal编程技术网

Android onClick在转换后不起作用

Android onClick在转换后不起作用,android,onclick,android-4.4-kitkat,android-transitions,Android,Onclick,Android 4.4 Kitkat,Android Transitions,我正在努力学习简单的TransitionManager工作,但我有点被卡住了 我的目标是通过点击图片在两个场景之间切换。但在第一次图像点击和第一次场景更改后,我无法捕捉图像点击 这是我的片段代码: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

我正在努力学习简单的TransitionManager工作,但我有点被卡住了

我的目标是通过点击图片在两个场景之间切换。但在第一次图像点击和第一次场景更改后,我无法捕捉图像点击

这是我的片段代码:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_main, container, false);
        ViewGroup sceneRoot = (ViewGroup)rootView.findViewById(R.id.relative);

        final Transition transition = new ChangeBounds();
        transition.setDuration(3000);

        final Scene scene1 = Scene.getSceneForLayout(sceneRoot, R.layout.scene1, getActivity());
        final Scene scene2 = Scene.getSceneForLayout(sceneRoot, R.layout.scene2, getActivity());

        ImageView image = (ImageView)rootView.findViewById(R.id.image);
        image.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!testBoo){
                    TransitionManager.go(scene2, transition);
                    testBoo = true;
                } else {
                    testBoo = false;
                    TransitionManager.go(scene1, transition);
                }

            }
        });
        return rootView;
    }
片段xml:

<RelativeLayout
    android:id="@+id/relative"
    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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:showIn="@layout/activity_main"
    tools:context=".MainActivityFragment">

    <include
        layout="@layout/scene1"
        />

</RelativeLayout>

场景1 xml:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="16dp"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
        android:id="@+id/text"
        android:text="Hello World!"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@id/image"
        android:layout_margin="5dp"
        />
    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher"
        android:layout_alignParentTop="true"
        />

</RelativeLayout>

场景2 xml:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="16dp"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
        android:id="@+id/text"
        android:text="Hello World!"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:layout_alignParentBottom="true"
        android:layout_toStartOf="@id/image"
        />
    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"

        />

</RelativeLayout>


你知道我哪里出错了吗?

有趣的是(尽管几乎所有教程都是一样的),当我更改容器ID时,它开始工作了。您也可以尝试相同的方法来查看它是否工作。

您需要再次设置onClickListeners以使其工作

在onCreateView中,可以直接调用setListeners方法

private void setListeners() {
    findViewById(R.id.thirdText).setOnClickListener(new View.OnClickListener() {
        @RequiresApi(api = Build.VERSION_CODES.KITKAT)
        @Override
        public void onClick(final View v) {
            final Scene scene3 = Scene.getSceneForLayout((ViewGroup) findViewById(R.id.mainlayout),
            R.layout.scene_3, MainActivity.this);
            Transition mFadeTransition = new ChangeBounds();
            TransitionManager.go(scene3, mFadeTransition);
            setListeners();
        }
    });

    findViewById(R.id.firsttext).setOnClickListener(new View.OnClickListener() {
        @RequiresApi(api = Build.VERSION_CODES.KITKAT)
        @Override
        public void onClick(final View v) {
            final Scene scene1 = Scene.getSceneForLayout((ViewGroup) findViewById(R.id.mainlayout),
            R.layout.activity_main, MainActivity.this);
            Transition mFadeTransition = new ChangeBounds();
            TransitionManager.go(scene1,mFadeTransition);
            setListeners();
        }
    });

    findViewById(R.id.secondText).setOnClickListener(new View.OnClickListener() {
        @RequiresApi(api = Build.VERSION_CODES.KITKAT)
        @Override
        public void onClick(final View v) {
            final Scene scene2 = Scene.getSceneForLayout((ViewGroup) findViewById(R.id.mainlayout),
            R.layout.scene_2, MainActivity.this);
            Transition mFadeTransition = new ChangeBounds();
            TransitionManager.go(scene2, mFadeTransition);
            setListeners();
        }
    });
}

找到答案了吗?现在呢?我有同样的问题(哪些容器(什么容器)?