Navigation 导航抽屉不工作无法移动到fragmets
我正在开发一个在线购物应用程序。我使用了导航抽屉活动,但它根本不适用于eg 如果我想从主片段移动到gallery片段,它不会移动(单击不起作用),并且我无法确定是否删除了一些重要的行或者问题出在哪里。Navigation 导航抽屉不工作无法移动到fragmets,navigation,fragment,navigation-drawer,Navigation,Fragment,Navigation Drawer,我正在开发一个在线购物应用程序。我使用了导航抽屉活动,但它根本不适用于eg 如果我想从主片段移动到gallery片段,它不会移动(单击不起作用),并且我无法确定是否删除了一些重要的行或者问题出在哪里。 有人能提出一些建议吗 以下是我的主要活动的样子: import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.w
有人能提出一些建议吗 以下是我的主要活动的样子:
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import com.example.chetnamartmobileapp.ui.home.HomeFragment;
import com.google.android.material.navigation.NavigationView;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
private static final int HOME_FRAGMENT = 0;
private static final int CART_FRAGMENT = 1;
private static final int ORDER_FRAGMENT = 2;
private FrameLayout frameLayout;
private ImageView actionBarLogo;
private static int currentFragment = -1;
private NavigationView navigationView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
actionBarLogo = findViewById(R.id.actionbar_logo);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
navigationView.getMenu().getItem(0).setChecked(true);
frameLayout = findViewById(R.id.main_framelayout);
setFragment(new HomeFragment(), HOME_FRAGMENT);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
if (currentFragment == HOME_FRAGMENT) {
getSupportActionBar().setDisplayShowTitleEnabled(false);
getMenuInflater().inflate(R.menu.main, menu);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.main_search_icon) {
//todo: search
return true;
} else if (id == R.id.main_notification_icon) {
//todo: notification
return true;
} else if (id == R.id.main_cart_icon) {
//todo: cart
gotoFragment("My Cart",new MyCartFragment(),CART_FRAGMENT);
return true;
}
return super.onOptionsItemSelected(item);
}
private void gotoFragment(String title, Fragment fragment, int fragmentNo) {
actionBarLogo.setVisibility(View.GONE);
getSupportActionBar().setDisplayShowTitleEnabled(true);
getSupportActionBar().setTitle(title);
invalidateOptionsMenu();
setFragment(fragment, fragmentNo);
if (fragmentNo == CART_FRAGMENT) {
navigationView.getMenu().getItem(3).setChecked(true);
}
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.nav_chetna_mart) {
actionBarLogo.setVisibility(View.VISIBLE);
invalidateOptionsMenu();
setFragment(new HomeFragment(), HOME_FRAGMENT);
} else if (id == R.id.nav_my_orders) {
gotoFragment("My Orders",new MyCartFragment(),ORDER_FRAGMENT);
} else if (id == R.id.nav_my_rewards) {
} else if (id == R.id.nav_my_cart) {
gotoFragment("My Cart",new MyCartFragment(),CART_FRAGMENT);
} else if (id == R.id.nav_my_wishlist) {
} else if (id == R.id.nav_my_account) {
} else if (id == R.id.nav_sign_out) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
private void setFragment(Fragment fragment, int fragmentNo) {
if (fragmentNo != currentFragment) {
currentFragment = fragmentNo;
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out);
fragmentTransaction.replace(frameLayout.getId(), fragment);
fragmentTransaction.commit();
}
}
}
有人能建议我可以做些什么或改变什么来启用它吗?什么是“根本不工作”?它有什么作用?你期望它做什么?你是否错过了语言标签?我无法移动到其他片段,例如。如果我在home fragment中,想进入Gallery fragment或任何其他片段,我单击抽屉上的该选项,它不会移动。我的意思是让你将其编辑到你的问题中。“根本不工作”是什么意思?它有什么作用?你期望它做什么?你是否错过了语言标签?我无法移动到其他片段,例如。如果我在home fragment中,想转到Gallery fragment或任何其他片段,我单击抽屉上的该选项,它不会移动。我的意思是让你将其编辑到你的问题中。