Workaround for preference anim

This commit is contained in:
tarsin committed 2022-07-15 13:12:30 +08:00
1 parent 07c1737597
commit 156e4f990d
3 files changed
+29 -6

No files matched your search

@@ -21,6 +21,7 @@ import android.view.MenuItem;
import androidx.annotation.StringRes;
import androidx.appcompat.app.ActionBar;
import androidx.fragment.app.FragmentTransaction;
import com.google.android.material.snackbar.Snackbar;
import com.hippo.ehviewer.R;
@@ -41,6 +42,7 @@ public final class SettingsActivity extends EhActivity {
if (savedInstanceState == null) {
getSupportFragmentManager()
.beginTransaction()
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_MATCH_ACTIVITY_OPEN)
.replace(R.id.fragment, new SettingsFragment())
.commitAllowingStateLoss();
}
@@ -21,6 +21,9 @@ package com.hippo.ehviewer.ui.fragment;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import androidx.preference.Preference;
import com.hippo.ehviewer.R;
@@ -30,6 +33,24 @@ public class SettingsFragment extends BasePreferenceFragment {
addPreferencesFromResource(R.xml.settings_headers);
}
@Override
public boolean onPreferenceTreeClick(Preference preference) {
String key = preference.getKey();
try {
Fragment classObj = (Fragment)Class.forName(key).newInstance();
requireActivity().getSupportFragmentManager()
.beginTransaction()
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.replace(R.id.fragment, classObj)
.addToBackStack("1")
.commitAllowingStateLoss();
} catch (ClassNotFoundException | IllegalAccessException | java.lang.InstantiationException e) {
e.printStackTrace();
return false;
}
return true;
}
@Override
public int getFragmentTitle() {
return R.string.settings;