2

我有一个Fragment. ImageView我如何Fragment在顶级系统 android 上显示这个ActionBar

对于:Wottah ActionBar应该是可见的。有必要让重叠部分成为我的一部分。我们需要对此使用一些东西:

ImageView view = new ImageView (getActivity ());
view.setBackgroundColor (Color.GREEN); 
WindowManager.LayoutParams p = new WindowManager.LayoutParams (); 
p.gravity = Gravity.TOP;
p.type = WindowManager.LayoutParams.TYPE_APPLICATION_PANEL; 
p.token = view.getWindowToken (); 
WindowManager mWindowManager = (WindowManager) getActivity (). GetSystemService(Context.WINDOW_SERVICE); 
mWindowManager.addView (view, p);
4

2 回答 2

1

Wottah,不幸的是,您的回答没有帮助。我查找了 android popupwindow 的源文件以及他们在我的项目中应用的决定。

任务:我们有应用程序。并且标准的 android 操作栏(如我们所知)是应用程序的一个单独部分,我的观点可能不是最重要的证据。

以下解决方案: 我的看法:

private class MyView extends ImageView
{
    public MyView(Context context)
    {
        super(context);
    }

    //it must be override
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if (keyCode == KeyEvent.KEYCODE_BACK)
        {
            activity.onBackPressed();
        }
        return super.onKeyDown(keyCode, event);
    }
}

我如何使用它:

private void createMyView()
    {
        view = new MyView(activity.getBaseContext());
        view.setBackgroundResource(R.drawable.*******);
        WindowManager mWindowManager = (WindowManager) activity.getSystemService(Context.WINDOW_SERVICE);
        WindowManager.LayoutParams p = new WindowManager.LayoutParams();
        p.width = iconWidth;
        p.height = iconHeight;
        p.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
        p.type = WindowManager.LayoutParams.TYPE_APPLICATION_PANEL;
        p.token = view.getWindowToken();
        p.gravity = Gravity.TOP;
        p.x = x;
        p.format = PixelFormat.TRANSLUCENT;
        mWindowManager.addView(view, p);

        view.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                //TODO
            }
        });
    }
于 2012-06-15T12:30:53.043 回答
0

如果你调整你的布局风格,你可以隐藏操作栏,这样你就不需要任何奇怪的结构来把一个 ImageView 放在它上面。

于 2012-06-01T12:58:33.600 回答