切换到首选项后,芯片导航栏不可用

时间:2020-05-15 14:31:38

标签: android-viewpager android-preferences

所以我正在使用芯片导航栏https://github.com/ismaeldivita/chip-navigation-bar,并且我希望它也显示在首选项屏幕中。我设法做到了,但是当在“首选项”屏幕中不再可用时,如果在屏幕上滚动,导航栏会与“首选项”屏幕混合在一起: preferenceScreen.png

MainActivity.java

def my_func(df,levels, values):
    # Code using query
    m = dict(zip(levels,values))
    #create expression to use in the query method
    expr = " and ".join(f"{k}=={v!r}" for k,v in m.items())
    ret = df.query(expr)
    return ret


#function application
my_func(s, ['p1'],['bar'])

                    0
p1  p2  p3  
bar one green   -0.087366
    two green   1.126620
  three blue    0.868515


my_func(s, ['p1','p2'],['bar','one'])

                    0
p1  p2  p3  
bar one green   -0.087366

SettingsFragment.java

public class MainActivity extends AppCompatActivity {


ChipNavigationBar bottomNav;
FragmentManager fragmentManager;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    bottomNav = findViewById(R.id.bottom_nav);

    if ( savedInstanceState==null){

        bottomNav.setItemSelected(R.id.home, true);
        fragmentManager = getSupportFragmentManager();
        HomeFragment homeFragment = new HomeFragment();
        fragmentManager.beginTransaction()
                .replace(R.id.fragment_container, homeFragment)
                .commit();
    }

    bottomNav.setOnItemSelectedListener(new ChipNavigationBar.OnItemSelectedListener() {
        private final String TAG = MainActivity.class.getSimpleName();




        @Override
        public void onItemSelected(int id) {

            Fragment fragment = null;

            switch (id) {

                case R.id.home:

                    fragment = new HomeFragment();
                    break;

                case R.id.sleep:

                    fragment = new SleepFragment();
                    break;

                case R.id.settings:

                    fragment = new SettingsFragment();
                    break;

            }
            if(fragment != null) {

                fragmentManager = getSupportFragmentManager();
                fragmentManager.beginTransaction()
                        .replace(R.id.fragment_container, fragment)
                        .commit();
            }

        }
    });

}
}

settings.xml

public class SettingsFragment extends Fragment {

public SettingsFragment() {
}





@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getActivity().invalidateOptionsMenu();
    getActivity().getFragmentManager().beginTransaction()
            .replace(android.R.id.content, new MyPreferenceFragment())
            .commit();

}



public static class MyPreferenceFragment extends PreferenceFragment {
    public MyPreferenceFragment() {
    }



    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settings);

    }


    @Override
    public void onResume() {
        super.onResume();

        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(preferenceChangeListener);

    }

    @Override
    public void onPause() {
        super.onPause();
        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(preferenceChangeListener);
   }
}

}

0 个答案:

没有答案
相关问题