'Android hamburger not turning into array
Like in title my hamburger in ActionBar does not turning into array and vice versa.
Here is my code:
ActivityMain.java
public class ActivityMain extends BaseActivity {
private final FragmentMainHome fragmentMainHome = new FragmentMainHome();
private BottomNavigationView bottomNavView;
private int startingPosition, newPosition;
public ActivityMainBinding binding;
@Override
public Activity getChildActivity() {
return this;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
initBottomNavView();
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, fragmentMainHome).commit();
}
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.menu_action_bar, menu);
final MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setQueryHint(getString(R.string.find_word));
searchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
@Override
public void onViewAttachedToWindow(View arg0) {
setItemsVisibility(menu, searchItem, false);
}
@Override
public void onViewDetachedFromWindow(View arg0) {
setItemsVisibility(menu, searchItem, true);
}
});
return super.onCreateOptionsMenu(menu);
}
(...)
}
BaseActivity.java
public abstract class BaseActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
public ActionBarDrawerToggle actionBarDrawerToggle;
private DrawerLayout drawerLayout;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initFields();
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
if(id == R.id.nav_login) {
drawerLayout.closeDrawers();
startActivity(new Intent(this, ActivityCredentials.class));
}
return false;
}
public abstract Activity getChildActivity();
private void initFields() {
if (getChildActivity() instanceof ActivityMain) {
ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
binding.navigationView.setNavigationItemSelectedListener(this);
drawerLayout = binding.myDrawerLayout;
}
if (getChildActivity() instanceof ActivityCredentials) {
ActivityCredentialsBinding binding = ActivityCredentialsBinding.inflate(getLayoutInflater());
binding.navigationView.setNavigationItemSelectedListener(this);
drawerLayout = binding.myDrawerLayout;
}
actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.find_word, R.string.add);
drawerLayout.addDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.syncState();
Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
}
}
So what is the reason my hamburger not chanmging into array ?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
