アクションアイテムの選択時に追加する小さなサイドバーフラグメントがあります。幅は固定されており、サイドバーが表示されるように少し圧縮されるアクションアイテムを選択するまで、メインビューが全画面表示されることを望んでいます。
私は、relative toleftOf / RightOfや、さまざまなレイアウト/幅の組み合わせなど、かなりの数のことを試しました。ウェイト付きのLinearLayoutを使用しない限り、サイドバーが常に全画面表示になります。半ば機能するLinearLayoutウェイトの問題は、画面の%を使用するため、さまざまな画面サイズで信頼性の低い効果が発生することです。
誰かが似たようなことをやってのけましたか?
______ _
| | | |
| Main |<-|S|
|______| |_|
現在半ば機能しているxml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false" >
<FrameLayout
android:id="@+id/frameLayoutImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" >
</FrameLayout>
<!-- This will initially have no content/collapsed -->
<FrameLayout
android:id="@+id/frameLayoutEdit"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="right|top"
android:layout_marginBottom="40dp"
android:layout_weight="4" >
</FrameLayout>
</LinearLayout>
フラグメントxml(固定幅の場合もあります):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout />
<Button />
<Button />
</RelativeLayout>
フラグメントの追加:
// This should just push the frame layout the necessary width to display the fragment
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.frameLayoutEdit, xmpFrag);