Jja*_*ang 9 java android appbar material-design android-5.0-lollipop
我正在尝试使用本教程实现带有图像模式的灵活空间.
一切正常.
注意AppBarLayout的高度定义是192dp.
我想改变屏幕的高度1/3,以匹配此模式的谷歌示例.
这是活动的onCreate中的代码(布局xml与教程中的完全相同):
AppBarLayout appbar = (AppBarLayout)findViewById(R.id.appbar);
float density = getResources().getDisplayMetrics().density;
float heightDp = getResources().getDisplayMetrics().heightPixels / density;
appbar.setLayoutParams(new CoordinatorLayout.LayoutParams(LayoutParams.MATCH_PARENT, Math.round(heightDp / 3)));
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,结果并不是我所期待的.我根本无法使用此代码查看应用栏.(没有代码,高度显示为预期,但它来自XML,无法动态设置).
小智 24
改为:
AppBarLayout appbar = (AppBarLayout) findViewById(R.id.appbar);
float heightDp = getResources().getDisplayMetrics().heightPixels / 3;
CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams)appbar.getLayoutParams();
lp.height = (int)heightDp;
Run Code Online (Sandbox Code Playgroud)
在您的原始代码中,我认为您计算屏幕的1/3是错误的,但您仍然应该看到一些东西.可能是setLP()中的LayoutParams.MATCH_PARENT未正确导入.始终首先声明视图类型,即CoordinatorLayout.LayoutParams只是为了确保.否则,例如,可以很容易地使用Framelayout.LayoutParams.
归档时间: |
|
查看次数: |
11424 次 |
最近记录: |