Android 在底部导航后面显示弹出窗口
因此,我在我的应用程序中有一个按钮导航,里面有一个浮动按钮,我希望每次用户按下浮动按钮时,菜单后面会出现一个弹出窗口,而不是在它前面,因为它隐藏了按钮导航。有人能帮我解决这个问题吗?我真的很想知道如何做到这一点Android 在底部导航后面显示弹出窗口,android,navigation,floating-action-button,android-popupwindow,Android,Navigation,Floating Action Button,Android Popupwindow,因此,我在我的应用程序中有一个按钮导航,里面有一个浮动按钮,我希望每次用户按下浮动按钮时,菜单后面会出现一个弹出窗口,而不是在它前面,因为它隐藏了按钮导航。有人能帮我解决这个问题吗?我真的很想知道如何做到这一点 public class MainActivity extends AppCompatActivity { BottomNavigationView bottom_navigation; FloatingActionButton story; Fragment
public class MainActivity extends AppCompatActivity {
BottomNavigationView bottom_navigation;
FloatingActionButton story;
Fragment selectedfragment = null;
RelativeLayout relativeLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bottom_navigation = findViewById(R.id.bottom_navigation);
bottom_navigation.setBackground(null);
story=findViewById(R.id.story_floating);
// relativeLayout=findViewById(R.id.popup_menu);
story.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openPopupwindow();
}
});
bottom_navigation.setOnNavigationItemSelectedListener(navigationItemSelectedListener );
Bundle intent = getIntent().getExtras();
if (intent != null){
String publisher = intent.getString("publisherid");
SharedPreferences.Editor editor = getSharedPreferences("PREFS", MODE_PRIVATE).edit();
editor.putString("profileid", publisher);
editor.apply();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new ProfileFragment()).commit();
} else {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new HomeFragment()).commit();
}
}
private BottomNavigationView.OnNavigationItemSelectedListener navigationItemSelectedListener =
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.nav_home:
selectedfragment = new HomeFragment();
break;
case R.id.nav_search:
selectedfragment = new SearchFragment();
break;
case R.id.nav_heart:
selectedfragment = new NotificationFragment();
break;
case R.id.nav_profile:
SharedPreferences.Editor editor = getSharedPreferences("PREFS", MODE_PRIVATE).edit();
editor.putString("profileid", FirebaseAuth.getInstance().getCurrentUser().getUid());
editor.apply();
selectedfragment = new ProfileFragment();
break;
}
if (selectedfragment != null) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedfragment).commit();
}
return true;
}
};
public void openPopupwindow(){
Intent intent=new Intent(MainActivity.this,PopUpWindow.class);
startActivity(intent);
}
}
您可以在同一活动中使用带有弹出式设计的布局,当按下按钮时,该布局将可见,而不是创建新活动。
public class PopUpWindow extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.popupwindowlayout);
DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width=dm.widthPixels;
int height=dm.heightPixels;
getWindow().setLayout((int)(width*.999),(int)(height*.3));
WindowManager.LayoutParams params=getWindow().getAttributes();
params.gravity=200;
params.x=0;
params.y=-20;
getWindow().setAttributes(params);
}
}