Используя последнюю библиотеку AppCompat-v21
, я использовал ActionBarActivity
для создания и заполнения PreferenceFragment
. Тем не менее, ActionBar
, похоже, не изменяет высоту и размер текста при изменении ориентации или размера экрана. Испытывая это на других мероприятиях, это поведение, по-видимому, происходит в PreferenceActivity
(в отличие от этого вопроса, заданного здесь: ActionBar capacity/overflow not changing on orientation change).ActionBar in PreferenceFragment не пересчитывает высоту и размер шрифта
Прежде всего, чтобы обработать изменения ориентации, я добавил android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
в манифест. Я подозреваю, что это основная причина этой проблемы, но, как я упоминал ранее, это работает на других Activity
с.
Вот несколько скриншотов, которые объясняют этот вопрос:
Запущенный PreferenceActivity
в портретном режиме:
повернется Пейзаж из Портрет:
запускаемых PreferenceActivity
в Пейзажный режим:
повернется Портрет из Пейзаж:
Дополнительная информация
Вот 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();
}
}
Это ошибка? Если нет, есть ли обходной путь или исправление?
EDIT Я
Я попытался использовать новый 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();
}
}
Такая же проблема здесь. Но в моем случае размер шрифта слишком мал в ландшафте, независимо от того, как он запущен ... – Zordid
Вы пытались определить 'textSize' в styles.xml? Иногда у андроида появляется ошибка, когда вы не определяете определенное значение. Вы можете прочитать это: http://stackoverflow.com/q/16189877/3922207 и http://stackoverflow.com/a/12899367/3922207 –