裁剪按钮和FLAG_FULLSCREEN交互?

时间:2012-09-17 14:05:29

标签: android

我在全屏布局上以编程方式创建了一些按钮。也就是说我在活动开始时有以下代码。

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

..所以活动开始了,我创建了按钮。所有看起来都很好,按钮看起来正确的大小和我在屏幕上的位置(在底部)和文本在按钮内完美居中。

当我使用一个intenet来调用其他一些ectivity然后返回原来时,会出现问题。此时重新绘制屏幕时,您会发现轻微的抖动,就好像屏幕稍微偏移了一样,然后快速重新定位。生成的最终屏幕看起来很不错,除了底部的按钮显示为裁剪。

这发生在我的三星星系SII上,但我的星系标签10.1上没有明显的问题。如果我注释掉这些行,那么这两个设备也没有问题:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

您可以在此处看到裁剪按钮:

enter image description here

有没有人有类似的问题?如果是这样,它是如何解决的?

编辑:我的直觉是,不知何故状态栏只是被慢慢移除,而且当屏幕仍处于向上滑动的过程中,按钮被定位在屏幕上。状态栏消失......但也许这个想法是一个红色的鲱鱼。

2 个答案:

答案 0 :(得分:0)

我无法复制此问题,但请尝试更改功能的顺序。我意识到这通常不是可以暗示的,但请试一试。

public void onCreate(Bundle savedInstanceState) {

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);

    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

答案 1 :(得分:0)

您可以尝试使用onResume()更新按钮,对于每个按钮,你应该这样:

 ViewGroup.LayoutParams params_btn1 = <params used to display programmatically the button>
 getWindowManager().updateViewLayout(button1, params_btn1);