Tma*_*sh2 3 android toolbar android-appcompat
我有一个AppBarLayout,其中我希望以编程方式将高程设置为0 onCreate()。如果我有这样的例子onCreate()..
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
setSupportActionBar(_toolbar);
_appBar.setElevation(0);
}
Run Code Online (Sandbox Code Playgroud)
在AppBarLayout海拔不改变。
但是,如果我添加一个延迟(例如400毫秒),则AppBarLayout海拔会发生变化。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
setSupportActionBar(_toolbar);
Observable.just(_appBar)
.delay(400, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<AppBarLayout>() {
@Override
public void accept(AppBarLayout appBarLayout) throws Exception {
appBarLayout.setElevation(0);
}
});
}
Run Code Online (Sandbox Code Playgroud)
谁能解释为什么会这样?以及如何立即解决此问题。我也尝试过getSupportActionBar().setElevation(0);使用API 24
解决了!而不是设置高程,我使用:
StateListAnimator stateListAnimator = new StateListAnimator();
stateListAnimator.addState(new int[0], ObjectAnimator.ofFloat(view, "elevation", 0));
appBarLayout.setStateListAnimator(stateListAnimator);
Run Code Online (Sandbox Code Playgroud)
请参阅以下答案以获得更详细的说明:
如何在Android支持库v24.0.0中以编程方式设置AppBarLayout的高程?
| 归档时间: |
|
| 查看次数: |
1166 次 |
| 最近记录: |