これに対する答えを探しましたが、同じ問題を抱えていて解決策がない他の人しか見つけることができません。非常に単純なレイアウトで膨らませた通常の SherlockFragment を回転させようとしています(テスト目的のみ):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/jan"
android:textColor="@color/standard_text_color"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
フラグメントコード:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View result = inflater.inflate(R.layout.foo_layout, null);
result.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
result.setRotation(90);
return result;
}
これにより、中央のピボットを中心にビューが回転しますが、レイアウトは正しい境界に変更されません。私がなんとかした最善の方法は、setPivotX(size.x/2) と setPivotY(size.x/2) を、size.x をデバイスの画面幅に、setLayoutParams(size.y, size.y) にすることです。この種の機能は、フラグメントのサイズの正方形を作成しますが、x ではなく size.y に設定されているため幅が不足していますが、setLayoutParams(size.x, size.y) は半分の正方形を作成するだけです...奇妙なことに、setLayoutParams(size.y, size.x) も同様です。
フラグメント全体が回転された後、フラグメントが正しい x 座標と y 座標にサイズ変更されて画面を埋める、これに対する解決策はありますか?