gpt4 book ai didi

android - PreferenceFragment 中的 ActionBar 不重新计算高度和字体大小

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:05 26 4
gpt4 key购买 nike

使用最新的 AppCompat-v21 库,我使用 ActionBarActivity 创建并填充 PreferenceFragment。但是,ActionBar 似乎不会在方向或屏幕尺寸改变时改变高度和文本尺寸。也在其他 Activity 上对此进行测试,这种行为似乎只发生在 PreferenceActivity 中(与此处提出的这个问题相反:ActionBar capacity/overflow not changing on orientation change)。

首先,为了处理方向变化,我在 list 中添加了 android:configChanges="keyboard|keyboardHidden|orientation|screenSize"。我怀疑这是这个问题的主要原因,但正如我之前提到的,这适用于其他 Activity

以下是一些解释问题的屏幕截图:

在纵向模式下启动 PreferenceActivity:

Portrait start

从纵向旋转为横向:

rotate to landscape

在横向模式下启动 PreferenceActivity:

landscape

从横向旋转为纵向:

rotate to portrait

附加信息

这是 PreferenceActivity 类:

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;

public class PrefsActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

getFragmentManager().beginTransaction().replace(android.R.id.content, new PrefsFragment()).commit();
}

}

这种行为是错误吗?如果没有,是否有解决方法或修复方法?


编辑我

我尝试使用新的 ToolBar 小部件,但没有成功。

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;

public class PrefsActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preference);

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_pref);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

getFragmentManager().beginTransaction().replace(R.id.pref_frame, new PrefsFragment()).commit();
}

}

最佳答案

android:configChanges 不推荐,因为方向、键盘不是 Activity 重新创建的唯一原因。

因此,更好的方法是从 Manifest 中删除它,并在 Fragment 类上设置 setRetainInstance(true);。这将绕过 Fragment 的销毁和重新创建循环,同时刷新 Activity。

由于 Toolbar 包含在 Activity 而不是 Fragment 中,这将在保留 Fragment 的同时刷新 Toolbar。

在对话框的情况下,使用 Fragment Lifecycle关闭/重新打开它们将起作用。

来源:http://developer.android.com/guide/topics/resources/runtime-changes.html

关于android - PreferenceFragment 中的 ActionBar 不重新计算高度和字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26704962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com