使用最新的AppCompat-v21
庫,我使用ActionBarActivity
來創建並填充PreferenceFragment
。然而,當方向或屏幕尺寸改變時,ActionBar
似乎沒有改變高度和文本大小。對其他活動也進行測試,此行爲似乎只發生在PreferenceActivity
(與此處詢問的這個問題相反:ActionBar capacity/overflow not changing on orientation change)。PreferenceFragment中的ActionBar不重新計算高度和字體大小
首先,爲了處理方位變化,我在清單中添加了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();
}
}
此行爲是一個錯誤?如果沒有,是否有解決方法或解決方法?
編輯我
我使用新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 2014-11-07 17:31:55
您是否嘗試在styles.xml中定義'textSize'?有時候,當你沒有定義一個確定的值時,android會產生一個bug。你可以閱讀:http://stackoverflow.com/q/16189877/3922207和http://stackoverflow.com/a/12899367/3922207 – 2014-12-11 12:29:56