我有一个包含按钮的片段列表和一个做出滑动手势后显示的片段(类似于菜单导航抽屉)。问题是,buttonFragments始终位于我的menuFragment的顶部。

插图:

java - 将片段放在absoluteLayout中-LMLPHP

我尝试使用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将其放在顶部(定位的对象就是这样)。

07-28 01:52
查看更多