Hi,
ich habe eine Activity und füge per Button ein Fragment hinzu.
Dieses Fragment soll nun mit einer Animation erscheinen. Ich habe inzwischen mehrere Ansätze ausprobiert, leider hat keiner funktioniert.
Hauptsächlich habe ich versucht, die Animation in der FragmentTransaction via setCustomAnimation hinzuzufügen.
Fehler habe ich bei keinem Versuch erhalten, Animationen aber auch nicht.
Hier kommt mein Code, ich hoffe, jemand von euch weiß, woran es liegt.
Viele Grüße,
Nolyn
Java: MainActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addTransitionButton();
}
private void addTransitionButton() {
Button transitionButton = findViewById(R.id.btnMainActivity);
transitionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addFragment();
}
});
}
private void addFragment() {
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.animator.slide_in_left, R.animator.slide_out_right);
ExampleFragment exampleFragment = new ExampleFragment();
fragmentTransaction.add(R.id.mainActivity, exampleFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() == 0) {
this.finish();
} else {
getFragmentManager().popBackStack();
}
}
}
Alles anzeigen
Java: Fragment
public class ExampleFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View fragmentView = inflater.inflate(R.layout.example_fragment, container, false);
fragmentView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getFragmentManager().popBackStack();
}
});
return fragmentView;
}
}
Alles anzeigen
XML: slide_in_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:propertyName="x"
android:valueFrom="-1000"
android:valueTo="0"
android:valueType="floatType"/>
</set>
Alles anzeigen
XML: slide_out_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:propertyName="x"
android:valueFrom="0"
android:valueTo="-1000"
android:valueType="floatType"/>
</set>
Alles anzeigen