Android在所有内容之上叠加视图?
你能在Android中的所有内容上叠加视图吗?
在iPhone中,我会将新视图设置为(0,0),并将其宽度和高度设置为宽度和高度。然后将其添加到将导致它充当叠加层,覆盖后面的内容(或者如果它具有透明背景,则显示后面的视图)。frame.origin
self.view
self.view
机器人中有类似的技术吗?我意识到视图略有不同(有三种类型(或更多...)相对布局,线性布局和框架布局),但是有没有办法不加选择地将视图叠加在所有内容之上?
你能在Android中的所有内容上叠加视图吗?
在iPhone中,我会将新视图设置为(0,0),并将其宽度和高度设置为宽度和高度。然后将其添加到将导致它充当叠加层,覆盖后面的内容(或者如果它具有透明背景,则显示后面的视图)。frame.origin
self.view
self.view
机器人中有类似的技术吗?我意识到视图略有不同(有三种类型(或更多...)相对布局,线性布局和框架布局),但是有没有办法不加选择地将视图叠加在所有内容之上?
只需使用 或 。最后一个子视图将覆盖其他所有内容。RelativeLayout
FrameLayout
Android支持Cocoa Touch SDK所不支持的模式:布局管理。
iPhone的布局意味着将所有内容都定位为绝对的(除了一些条纹因素)。Android中的布局意味着儿童将彼此相对放置。
示例(第二个 EditText 将完全覆盖第一个):
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/root_view">
<EditText
android:layout_width="fill_parent"
android:id="@+id/editText1"
android:layout_height="fill_parent">
</EditText>
<EditText
android:layout_width="fill_parent"
android:id="@+id/editText2"
android:layout_height="fill_parent">
<requestFocus></requestFocus>
</EditText>
</FrameLayout>
FrameLayout
是某种视图堆栈。专为特殊情况而设计。
RelativeLayout
非常强大。您可以定义规则,例如视图 A 必须将父布局底部对齐,视图 B 必须将 A 从下对齐到顶部,等等
根据评论进行更新
通常,您将内容设置为 in(它会为您膨胀布局)。您可以手动执行此操作并调用 ,没有区别。setContentView(R.layout.your_layout)
onCreate
setContentView(inflatedView)
视图本身可以是单个视图(如 ),也可以是复杂的布局层次结构(嵌套布局,因为所有布局都是视图本身)。TextView
调用活动后,知道其内容的外观,您可以使用 来检索此层次结构中的任何视图(常规模式 )。setContentView
(FrameLayout) findViewById(R.id.root_view)
(ClassOfTheViewWithThisId) findViewById(R.id.declared_id_of_view)
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id = "@+id/Everything"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- other actual layout stuff here EVERYTHING HERE -->
</LinearLayout>
<LinearLayout
android:id="@+id/overlay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right" >
</LinearLayout>
现在,您在 LinearLayout 下添加的任何视图,使用 android:id = “@+id/overlay”
将显示为覆盖,重力 = 在线性布局上,android:id=“@+id/Everything”