Androidのレイアウトに関する質問です。ここで私は熱心を取得したいものです。ビューを親レイアウトの外に少し出す方法はありますか?
ダーク・グレーのLinearLayoutです。オレンジはレイアウトXで、次にGreenはFrameLayoutです。 Greenを親のレイアウトXの外側に配置する必要があります。記述されたレイアウト階層は変更できません。唯一の選択肢はレイアウトXです。それはあなたの望むものでもかまいません。
アイデア?
Androidのレイアウトに関する質問です。ここで私は熱心を取得したいものです。ビューを親レイアウトの外に少し出す方法はありますか?
ダーク・グレーのLinearLayoutです。オレンジはレイアウトXで、次にGreenはFrameLayoutです。 Greenを親のレイアウトXの外側に配置する必要があります。記述されたレイアウト階層は変更できません。唯一の選択肢はレイアウトXです。それはあなたの望むものでもかまいません。
アイデア?
緑の部分をレイアウトXに配置することはできません。レイアウトのX部分をその親の外側に描画することはできないためです。
したがって、すべてのビューの親としてRelativeLayoutまたはFrameLayout(ルートレイアウト)を実装する必要があります。
緑色のビューをルートレイアウトのchildViewとして配置します。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/layout_dark_grey"
android:layout_width="100dp"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
<LinearLayout
android:id="@+id/layout_orange"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toRightOf="@id/layout_dark_grey"
android:orientation="vertical" >
</LinearLayout>
<RelativeLayout
android:id="@+id/layout_green"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerVertical="true"
android:layout_toLeftOf="300dp" >
</RelativeLayout>
</RelativeLayout>
私は、私が使っているものの代わりに、より適切なレイアウトを使ってそれを達成する方法があることを知っています。私の場合はそれを行う方法があるなら、私はまだ興味があります。 – agibalov
使用 - あなたの子ビューのすべての親で
android:clipChildren="false"
android:clipToPadding="false"
、あなたが親ビューと意志の外で、あなたの子ビューを置くであろう、負であるためにあなたのビューの「マージンを残した」置きますビューをクリップすることさえできません。
私が考えることができる唯一の方法は、FrameLayoutを使ってすべてをラップし、濃いグレーとオレンジを線形レイアウトにしてから、緑色のレイアウトを他のレイヤーに重ねることです。あなたの「レイアウト階層は変更できません」との間で競合します。ただ好奇心から、なぜそれはできないのですか? – Barak
余白に負の値を指定できると思います。あなたはそれを試しましたか?私はそれがオーバーラップすることができるレイアウト(例えば、キャンバス上の2つのオブジェクト)で動作すると思います。私はエディタの近くにいません、そうでなければ私はそれを自分で試してみましょう。あなたがレイアウト全体をキャンバスにするとオーバーラップする可能性があることは確かですが、私はあなたの状況ではわかりません。 – Gophermofur
@Barak:それは基本的にテーブル(テーブル行は写真上にあります)であり、ある状況ではそれを通常の位置に移動する必要があるため、Table/TableRowレイアウトだけが使用できます。 – agibalov