画面の右下隅にマップのズームコントロールを配置しようとしています。との両方alignParentBottom="true"
を使用してRelativeLayoutでそれを行うことができましたalignParentRight="true"
が、Framelayoutではそのような属性は見つかりませんでした。画面の右下に配置するにはどうすればよいですか?
画面の右下隅にマップのズームコントロールを配置しようとしています。との両方alignParentBottom="true"
を使用してRelativeLayoutでそれを行うことができましたalignParentRight="true"
が、Framelayoutではそのような属性は見つかりませんでした。画面の右下に配置するにはどうすればよいですか?
回答:
他の答えで言われていることにもかかわらず、実際にはそれは可能です。がありFrameLayout
、子アイテムを一番下に配置したい場合は、を使用するandroid:layout_gravity="bottom"
と、その子がの一番下に配置されFrameLayout
ます。
私はそれを使用しているのでそれが機能することを知っています。遅いのはわかっていますが、これはグーグルの上位にランクされているので、他の人にとって便利かもしれません
私もこの状況に遭遇し、FrameLayoutを使用してその方法を理解しました。次の出力は、以下のコードによって生成されます。
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/contactbook_icon"
android:layout_gravity="center" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="140"
android:textSize="12dp"
android:textColor="#FFFFFF"
android:layout_gravity="bottom|right"
android:layout_margin="15dp" />
</FrameLayout>
余白の値を変更して、画像上のテキストの位置を調整します。マージンを削除すると、テキストがビューの外に出ることがあります。
それを使用して達成することができます RelativeLayout
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:src="@drawable/icon"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true" />
</RelativeLayout>
wrap_content
の中でRelativeLayout
。とにかく、RelativeLayoutは画面全体に拡大縮小されます。
Javaコードで試してみたい場合。どうぞ -
final LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
yourView.setLayoutParams(params);
params.gravity = Gravity.BOTTOM; // set gravity
非表示のTextViewをFrameLayoutに追加できます。
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:visibility="invisible"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<Button
android:id="@+id/daily_delete_btn"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:text="DELETE"
android:layout_gravity="center"/>
<Button
android:id="@+id/daily_save_btn"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:text="SAVE"
android:layout_gravity="center"/>
</LinearLayout>
Android Studioのactivity.xmlページの制約ウィジェットを使用してこれを行う方法はたくさんあります。
最も一般的な2つの方法は次のとおりです。
FrameLayoutではできません。
スペックから:
http://developer.android.com/reference/android/widget/FrameLayout.html
「FrameLayoutは、画面上の領域をブロックして単一のアイテムを表示するように設計されています。FrameLayoutに複数の子を追加できますが、すべての子は画面の左上に固定されます。」
RelativeLayoutを使用しないのはなぜですか?