我有一个包含按钮的片段列表和一个做出滑动手势后显示的片段(类似于菜单导航抽屉)。问题是,buttonFragments始终位于我的menuFragment的顶部。
插图:
我尝试使用View.bringToFront()方法,但是没有用。我做错了吗,还是应该以其他方式做呢?
活动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。
<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将其放在顶部(定位的对象就是这样)。