如何在旋转发生时重新创建工具栏

时间:2016-04-26 14:39:53

标签: android android-toolbar

阅读this so question可以看到工具栏在横向与纵向模式下使用不同的高度。

但是,当指定android:configChanges="orientation|screenSize"时,工具栏高度将根据首次创建活动的方向保持静态,并且在旋转设备时不会更改。

我该如何解决这个问题?我想我应该在onConfigurationChanged()方法中调整工具栏的大小,或者我应该销毁并重新创建工具栏并让它从头开始获取默认高度。我实际上更喜欢这第二种方式,但我不知道如何做任何这些,所以欢迎任何建议。

1 个答案:

答案 0 :(得分:0)

获取轮换事件:

    @Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    // Checks the orientation of the screen
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
    }
}

调整布局大小:

首先你必须声明你要调整大小的布局:

RelativeLayout rl = (RelativeLayout) findViewById(R.id.yourId);

并调整大小:

 rl.getLayoutParams().height = 100;  // replace 100 with your dimensions
    rl.getLayoutParams().width = 100;