最初のビューを2番目のビューとオーバーラップするLinearLayoutで表示することは可能ですか?
ビューを次のようにレイアウトしたいと思います。
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:layout_alignParentRight="true" >
<TextView
Android:id="@+id/firstTextView"
Android:layout_width="wrap_content"
Android:layout_height="wrapContent" />
<TextView
Android:id="@+id/secondTextView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
</LinearLayout>
しかし、レイアウトからの最初のビューであるfirstTextViewを、(重複する)secondTextViewの上に配置する必要があります。これは可能ですか?オーバーラップ効果を得るためにマージンも試しているので、LinearLayoutを使用しています。
私のために働いた、そしておそらくあなたのために働くだろうことはそれです:
したがって、レイアウトは次のようになります。
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="vertical"
Android:clipChildren="false">
<TextView
Android:id="@+id/firstTextView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="#00000000"
Android:text="First View" />
<TextView
Android:id="@+id/secondTextView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/firstTextView"
Android:background="#00000000"
Android:layout_marginTop="-13dp"
Android:text="Second View"/>
</RelativeLayout>
そして:
TextView firstTextView = (TextView)findViewById(R.id.firstTextView);
firstTextView.bringToFront();
2つのビューを垂直方向にオーバーラップするだけの場合は、次のXMLを使用します。
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="vertical" >
<TextView
Android:id="@+id/firstTextView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="#00000000"
Android:text="First View" />
<TextView
Android:id="@+id/secondTextView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="#00000000"
Android:layout_marginTop="-13dp"
Android:text="Second View"/>
</LinearLayout>
または、線形レイアウトに固執することもできますが、子としてその中にRelativeLayoutを配置します。次に、RelativeLayoutを使用してTextViewを配置できるため、RelativeLayoutからプロパティを継承します。その後も、LinearLayoutを他のビューに使用できます。 http://developer.Android.com/reference/Android/widget/RelativeLayout.html
マージン値「<0」を割り当てることにより、ビューをオーバーラップさせることができます。ただし、ビューをオーバーラップする必要がある場合は、相対レイアウトが適しています。
私はこれが古い質問であることを知っていますが、誰かが今日のようにこれを再び探している場合に備えて-私は動的にビルドレイアウトを持っているので、特定のxmlではなく、スタックの上に追加したい別のビューを持っています特定の設定に応じて; @GabeSechanのコメントにより、正しい方向に進むことができました。-bottommarginを使用して2番目のビューを表示し、新しいビューを位置0に挿入しました。
LinearLayout stack = (LinearLayout) findViewById(R.id.mystackview);//get your stack
stack.addView(getView(count), 0); //place it at the top
public View getView(){
TextView view = menuLayout.findViewById(R.id.myview);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(size, size);
layoutParams.setMargins(0, 0, 0, -size));//this pulls the view back up to overlap evenly
layoutParams.setMarginEnd(0);
layoutParams.setMarginStart(size);
if (view.getParent() != null)
((ViewGroup) view.getParent()).removeView(view);
view.setLayoutParams(layoutParams);
view.setZ(1);//this then sets the zindex above the other layout and hey presto, almost a simple css style fix
return view;
}