[英]Bring fragment to front within absoluteLayout
I have list of fragment containing buttons and one fragment, that shows up, after slide gesture is made ( similar to menu navigation drawer ). 我有一个包含按钮的片段列表和一个做出滑动手势后显示的片段(类似于菜单导航抽屉)。 Problem is, that the buttonFragments always stay on top of my menuFragment.
问题是,buttonFragments始终位于我的menuFragment的顶部。
Illustration: 插图:
I tried to use View.bringToFront() method, but it didnt work. 我尝试使用View.bringToFront()方法,但是没有用。 Am I doing it wrong, or should I do it in different way?
我做错了吗,还是应该以其他方式做呢?
Activity EditKeyboard.java: 活动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);
}
}
So what am I doing wrong? 那我在做什么错?
Or should I use different layout (Relative or Frame one?) 还是应该使用其他布局(相对布局还是第一帧?)
I would use relativelayout. 我会使用relativelayout。
<RelativeLayout>
...
<fragment
android:name= "packagename.button_fragment"
...width, height, id, postion... />
<fragment
android:name= "packagename.bMenu"
...width, height, id, postion... />
Here because bMenu is placed after button_fragment, it will be on top of button_fragment. 在这里,因为bMenu放在button_fragment之后,所以它将位于button_fragment的顶部。 So button_fragment is inflated first while rendering followed by bMenu putting it on top of it (subject of positioning being such).
因此,button_fragment首先在渲染时膨胀,然后是bMenu将其放在顶部(定位的对象就是这样)。
我已经通过将每个按钮包装到FrameLayout中解决了它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.