我在全屏布局上以编程方式创建了一些按钮。也就是说我在活动开始时有以下代码。
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);
您可以在此处看到裁剪按钮:
有没有人有类似的问题?如果是这样,它是如何解决的?
编辑:我的直觉是,不知何故状态栏只是被慢慢移除,而且当屏幕仍处于向上滑动的过程中,按钮被定位在屏幕上。状态栏消失......但也许这个想法是一个红色的鲱鱼。
答案 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);