Android场景转换问题

时间:2015-11-06 09:46:41

标签: android transition scene

我正在尝试使用转换框架将一个场景更改为另一个场景。

MainActivity.java

mSceneRoot = (ViewGroup) findViewById(R.id.root_scene);
        calendarScene = Scene.getSceneForLayout(mSceneRoot, R.layout.content_main_scene1,this);
        searchScene = Scene.getSceneForLayout(mSceneRoot, R.layout.content_main_scene2,this);

searchTextView = (TextView) findViewById(R.id.searchTextEdit);
        searchTextView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                    TransitionManager.go(searchScene);
                } else
                {
                    TransitionManager.go(calendarScene);
                }
            }
        });

content_root.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto" 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"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:showIn="@layout/activity_main" tools:context=".MainActivity">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/root_scene">
        <include layout="@layout/content_main_scene1"/>
    </FrameLayout>
</RelativeLayout>

content_main_scene2还有listView。 最后我得到了例外:

11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/InputEventReceiver: Exception dispatching input event.
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI: java.lang.NullPointerException
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2413)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2373)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.View.requestFocus(View.java:6945)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.View.requestFocus(View.java:6924)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.View.rootViewRequestFocus(View.java:4746)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.removeAllViewsInLayout(ViewGroup.java:4042)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.removeAllViews(ViewGroup.java:3971)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.transition.Scene.enter(Scene.java:163)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.transition.TransitionManager.changeScene(TransitionManager.java:193)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.transition.TransitionManager.go(TransitionManager.java:342)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at com.freelance.wwtlf.info.MainActivity$2.onFocusChange(MainActivity.java:71)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.View.onFocusChanged(View.java:4836)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.widget.TextView.onFocusChanged(TextView.java:7641)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.View.handleFocusGainInternal(View.java:4617)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.View.requestFocusNoSearch(View.java:6999)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.View.requestFocus(View.java:6978)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.View.requestFocus(View.java:6945)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.View.requestFocus(View.java:6924)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.View.onTouchEvent(View.java:8653)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.widget.TextView.onTouchEvent(TextView.java:7693)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.View.dispatchTouchEvent(View.java:7706)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.app.Activity.dispatchTouchEvent(Activity.java:2458)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:     at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/MessageQueue-JNI:   at
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info D/AndroidRuntime: Shutting down VM
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0xa4d17b20)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime: FATAL EXCEPTION: main
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime: Process: com.freelance.wwtlf.info, PID: 5937
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime: java.lang.NullPointerException
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2413)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2370)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2414)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.requestFocus(ViewGroup.java:2373)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.View.requestFocus(View.java:6945)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.View.requestFocus(View.java:6924)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.View.rootViewRequestFocus(View.java:4746)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.removeAllViewsInLayout(ViewGroup.java:4042)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.view.ViewGroup.removeAllViews(ViewGroup.java:3971)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.transition.Scene.enter(Scene.java:163)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.transition.TransitionManager.changeScene(TransitionManager.java:193)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at android.transition.TransitionManager.go(TransitionManager.java:342)
11-06 03:14:13.848 5937-5937/com.freelance.wwtlf.info E/AndroidRuntime:     at com.freelance.wwtlf.info.MainActivity$2.onFocusChange(MainActivity.java:71)

...

哪个对象指向null

更新: 当我将OnFocusChangeListener更改为onClickListener时,一切正常。但我仍然不明白为什么......

0 个答案:

没有答案