В navigation drawer создаю два фрагмента обычный и с настройками, при переходе из фрагмента настроек на другой он накладывается
public class SettingsFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().getFragmentManager().beginTransaction()
.add(R.id.container_fragments, new Settings())
.commit();
setHasOptionsMenu(true);
//getActivity().setTitle(R.string.settings_title);
}
/*@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.settings, container, false);
return view;
}*/
public static class Settings extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().setTitle(R.string.settings_title);
addPreferencesFromResource(R.xml.settings);
}
}
}
Класс для работы с Navigation Drawer
public abstract class Navigation extends AppCompatActivity {
private DrawerLayout drawer;
private ActionBarDrawerToggle t;
private NavigationView nv;
@LayoutRes
protected int getLayoutResId() {
return R.layout.activity_fragment;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutResId());
drawer = findViewById(R.id.drawer_layout);
t = new ActionBarDrawerToggle(this, drawer, R.string.Open, R.string.Close);
drawer.addDrawerListener(t);
t.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
nv = findViewById(R.id.nav_view);
nv.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.account:
/*FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.account_fragment);
if (fragment == null) {
fragment = new AccountFragment();
}
fm.beginTransaction()
.add(R.id.account_fragment, fragment)
.commit();*/
openFragment("account");
drawer.closeDrawers();
break;
/*case R.id.recipes:
Toast.makeText(Navigation.this, "Recipes", Toast.LENGTH_SHORT).show();
openFragment("R.id.recipes");
break;*/
case R.id.settings:
openFragment("settings");
drawer.closeDrawers();
break;
default:
return true;
}
return false;
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (t.onOptionsItemSelected(item))
return true;
return super.onOptionsItemSelected(item);
}
public void openFragment(String frag) {
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentByTag(frag);
if (fragment == null) {
switch (frag) {
case "account":
fragment = new AccountFragment();
break;
/* case "R.id.recipes":
break;*/
case "settings":
fragment = new SettingsFragment();
break;
}
fm.beginTransaction()
.replace(R.id.container_fragments, fragment, frag)
.commit();
}
}
}
AccountFragment
public class AccountFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().setTitle(R.string.Acoount_title);
setHasOptionsMenu(true);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.account_fragment, container, false);
return view;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
}
Account fragment накладывается на Settings Fragment
![ вот]1
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Ошибка: integer number too largeНо при чём здесь integer если я указываю тип long?
У меня есть два цикла: один внешний, другой внутреннийВнутренний цикл проходит столько сколько я ему задал
Во время работы с моим приложение на Samsung s8+ очень редко появляется черный экран и телефон попадает в блокировкуКто нибудь знает в чем может...
интересует следующий моментСчитываю help из файла, записываю его в JTextArea, после добавляю в JScrollPane