2015-10-16 43 views
6

Ich versuche einfach TransitionManager- Arbeit zu lernen, aber ich bin fest wenig ...onClick funktioniert nicht nach dem Übergang

Mein Ziel ist es durch Klicken zwischen zwei Szenen machen zu ändern. Aber nach dem ersten Bild klicken und ersten Szenenwechsel, ich nicht Bild klicken fange ...

hier ist mein Fragment Code:

@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; 
    } 

Fragment 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> 

scene1 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> 

Scene2 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> 

Haben Sie eine Ahnung, wo ich falsch liege?

+0

keine Antwort gefunden? –

Antwort

-1

Interessanterweise (obwohl es für fast alle Tutorials gleich ist), begann ich zu arbeiten, wenn ich Container-IDs änderte. Sie können die gleiche Methode auch versuchen, um zu sehen, ob es funktioniert.

+0

Welche Container (Container von was)? –

1

Sie müssen onClickListeners erneut einstellen, damit es funktioniert.

In Ihrer onCreateView können Sie SetListeners Methode direkt aufrufen.

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(); 
     } 
    }); 
} 
Verwandte Themen