上一篇博文里给自己挖了一个坑,今天把这个坑埋了。之前说listView的高度=屏幕高度-标题栏和状态栏高度-titleBar高度-bottomTab高度,titleBar和bottomTab都是自己画的View,这个不难理解,那么标题栏和状态栏是哪一块呢?见下图:
标题栏和状态栏是android默认给出的两栏,每个应用新建的时候都会出现,如果要去掉这两栏,可以在Activity的setContentView之前写两行代码:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉状态栏
如果不去掉这两栏,而是要获取两栏的高度,以此来更好的进行屏幕的适配,一般网上给出的下述的方法:
public class MainActivity extends Activity {
private int topHeight;
private int titleHeight;
private int statusHeight;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getHeight();
}
private void getHeight() {
// 状态栏+标题栏总高度
topHeight = getWindow().findViewById(Window.I