iOS では、UIView が親ビューによって与えられた制約に基づいてサイズを変更できるという概念があります。たとえば、親ビューが拡大すると、子ビューは使用可能なスペースに合わせて拡大または縮小する場合があります。これはプラットフォームに組み込まれており、開発が簡単になります。
だから、私の問題は、ICS で ActionBar を利用するスマートフォン アプリケーションを開発していることです。私はそこに私が使用して設定したカスタムビューを持っています:
actionBar.setCustomView(R.layout.my_custom_title);
xml からビューを膨らませているだけであることに注意してください。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
style="@style/TextAppearance.Title.Theme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="Title" />
<TextView
android:id="@+id/subtitle"
style="@style/TextAppearance.SubTitle.Theme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="Subtitle" />
</LinearLayout>
現在、ICS では、向きが変わると ActionBar の高さが変わります。縦モードよりも横モードの方が狭いです。これにより、カスタム タイトル ビュー テキストのサイズが変更されていないのに、ActionBar の高さが縮小されたため、横向きモードで「サブタイトル」テキストが途切れてしまいます。
プログラムを使用せずに、向きの変更時にテキストのサイズを変更することは可能ですか?
私はオーバーリングです
onConfigurationChanged()
そのため、横向きと縦向きのカスタム タイトル ビューを別々に持つことはできません。
補足: これは私に思い出させます... onConfigurationChanged() で、基本的に画面上のビューの位置を調整するだけの新しい xml レイアウトを提供できることを望みます。もちろん、縦長レイアウトと xml レイアウトには同じビューが含まれている必要がありますが、異なるレイアウト情報が存在することになります。これにより、 onCreate() を再度呼び出すよりもはるかに簡単になり、より効率的になります。