繁体   English   中英

Android标题栏大小

[英]Android title bar size

如何获得活动标题栏的大小和系统栏的大小?

我是用我的根布局完成的,问题是当它们第一次运行时,您无法在onCreate / onStart / onResume方法中获得此信息(宽度和高度)。

在此之后的任何时刻,都可以从您的根布局(LinearLayout / FrameLayout / TableLayout / etc)中检索大小,在我的情况下,我正在使用FrameLayout:

FrameLayout f = (FrameLayout) findViewById(R.id.layout_root);
Log.d(TAG, "width " + f.getMeasuredWidth() );
Log.d(TAG, "height " + f.getMeasuredHeight() );

要么:

FrameLayout f = (FrameLayout) findViewById(R.id.layout_root);
Log.d(TAG, "width " + f.getRight() );
Log.d(TAG, "height " + f.getBottom() );

现在您已经有了活动的高度,要知道系统栏的高度只是从活动的高度中减去整个屏幕的高度。

在此说明如何获取屏幕高度: 获取以像素为单位的屏幕尺寸

从这里编辑----------------------------------------------- ---------

我找到了一种在onCreted方法上获取此信息的方法,但前提是您只有一个以上的活动。 就我而言,我有一个主要活动称为第二活动。

在我调用second_activity之前的main_activity上,通过新的Itent,我可以为second_activity添加额外的信息。 这是您在第一个活动中需要的代码:

Intent i = new Intent(this, SecondActivity.class);
i.putExtra("width", f.getMeasuredWidth());
i.putExtra("height", f.getMeasuredHeight());
startActivity(i);

之后,在第二个活动中,您可以通过第二个活动的onCreate方法检索此信息:

int width = getIntent().getExtras().getInt("width");
int height = getIntent().getExtras().getInt("height");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM