我有一个包含按钮的 fragment 列表和一个 fragment ,在做出滑动手势后显示(类似于菜单抽屉导航)。问题是,buttonFragments 始终位于我的 menuFragment 之上。
插图:
我尝试使用 View.bringToFront() 方法,但没有成功。我做错了吗,还是应该以不同的方式做?
Activity EditKeyboard.java:
public class EditKeyboard extends AppCompatActivity{
ArrayList<Fragment> keyFragments; // buttons
Fragment bMenu; // menu
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_keyboard);
createButtons();
createBMenu();
}
public void createBMenu(){
bMenu = ButtonMenuFragment.newInstance("a", "a");
getFragmentManager().beginTransaction().add(R.id.edit_keyboard_layout,
bMenu, "bMenu").commit();
View v = bMenu.getView();
v.bringToFront(); // TODO bring menu to top
((View) v.getParent()).requestLayout();
((View) v.getParent()).invalidate();
getFragmentManager().popBackStackImmediate("TAG", FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
}
那么我做错了什么?
或者我应该使用不同的布局(相对或框架一?)
最佳答案
我会使用相对布局。
<RelativeLayout>
...
<fragment
android:name= "packagename.button_fragment"
...width, height, id, postion... />
<fragment
android:name= "packagename.bMenu"
...width, height, id, postion... />
这里因为bMenu放置在button_fragment之后,所以它会在button_fragment之上。因此,在渲染时,button_fragment 首先会膨胀,然后 bMenu 将其放在其顶部(定位的主题就是这样)。
关于java - 将 fragment 置于绝对布局中的前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36384661/