xamarin - 滚动视图上方的浮动操作按钮卡在顶部
问题描述
我试图让一个浮动操作按钮(FAB)“浮动”在屏幕右下角的滚动视图上,它只是“卡在”滚动视图的顶部并且不会移动。这是我的 XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:src="@drawable/Banner2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView1" />
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_gravity="center"
android:layout_marginTop="0sp"
android:background="#000000" />
<TextView
android:text="New Account"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1"
android:textAlignment="center" />
</LinearLayout>
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_margin="16dp"
android:clickable="true"
android:src="@drawable/ic_info_2x" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:text="Enter Username"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="150.5dp"
android:layout_height="wrap_content"
android:id="@+id/textView1"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/aTextboxUsername" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:text="Enter Password"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="150.5dp"
android:layout_height="wrap_content"
android:id="@+id/textView1"/>
<EditText
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/aTextboxPassword"
android:autoLink="none" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:text="Confirm Password"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="150.5dp"
android:layout_height="wrap_content"
android:id="@+id/textView1"/>
<EditText
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/aTextboxPassword2"
android:autoLink="none" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:text="Enter Email Address"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="192.5dp"
android:layout_height="wrap_content"
android:id="@+id/textView1"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtEmailAddress"
android:autoLink="none" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:text="Confirm Email Address"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="193.5dp"
android:layout_height="wrap_content"
android:id="@+id/textView1"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtEmailAddress2"
android:autoLink="none" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="First Name" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/motherfirstname"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="Middle Initial" />
<EditText
android:layout_width="50dp"
android:layout_height="wrap_content"
android:maxLength = "1"
android:id="@+id/mothermi"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="Last Name" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/motherlastname"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="35dp"
android:text="Suffix" />
<Spinner
android:layout_width="110dp"
android:layout_height="35dp"
android:id="@+id/spinner_suffix" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="Address" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/motheraddress"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="City" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/mothercity"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="State" />
<Spinner
android:layout_width="110dp"
android:layout_height="35dp"
android:id="@+id/motherstate" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="Zip Code" />
<EditText
android:layout_width="50dp"
android:layout_height="wrap_content"
android:maxLength = "5"
android:id="@+id/motherzip"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_gravity="center"
android:layout_marginTop="0sp"
android:background="#000000" />
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="Select Company, Department, Section you are registering for" />
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_gravity="center"
android:layout_marginTop="0sp"
android:background="#000000" />
<TextView
android:text="Select Company"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:textStyle="bold"
android:id="@+id/textView2" />
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:id="@+id/company_spinner" />
<TextView
android:text="Select Department"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:textStyle="bold"
android:id="@+id/textView2" />
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:id="@+id/department_spinner" />
<TextView
android:text="Select Section"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:textStyle="bold"
android:id="@+id/textView2" />
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:id="@+id/section_spinner" />
<Button
android:text="Submit"
android:layout_width="200px"
android:layout_gravity="center"
android:layout_height="34.5dp"
android:id="@+id/button_submit" />
</LinearLayout>
</ScrollView>
</LinearLayout>
单击 FAB 时,将显示一个弹出窗口,为用户提供有关如何继续的信息。我已经尝试了几个在 stackoverflow 和其他地方找到的示例,但没有任何效果。我怎样才能解决这个问题?
解决方案
您可以使用 a 开始布局,CoordinatorLayout
然后可以layout_anchor
将 FAB 锚定 ( ) 到您的ScrollView
并应用布局重力 ( layout_anchorGravity
) 将其放置在右下角 ( bottom|end
):
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/fab_margin"
app:layout_anchorGravity="bottom|end"
app:layout_anchor="@id/scrollView1"
app:srcCompat="@drawable/ic_info_2x" />
就像是:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView1" />
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_gravity="center"
android:layout_marginTop="0sp"
android:background="#000000" />
<TextView
android:text="New Account"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1"
android:textAlignment="center" />
</LinearLayout>
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:text="Enter Username"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="150.5dp"
android:layout_height="wrap_content"
android:id="@+id/textView1"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/aTextboxUsername" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:text="Enter Password"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="150.5dp"
android:layout_height="wrap_content"
android:id="@+id/textView1"/>
<EditText
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/aTextboxPassword"
android:autoLink="none" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:text="Confirm Password"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="150.5dp"
android:layout_height="wrap_content"
android:id="@+id/textView1"/>
<EditText
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/aTextboxPassword2"
android:autoLink="none" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:text="Enter Email Address"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="192.5dp"
android:layout_height="wrap_content"
android:id="@+id/textView1"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtEmailAddress"
android:autoLink="none" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:text="Confirm Email Address"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="193.5dp"
android:layout_height="wrap_content"
android:id="@+id/textView1"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtEmailAddress2"
android:autoLink="none" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="First Name" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/motherfirstname"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="Middle Initial" />
<EditText
android:layout_width="50dp"
android:layout_height="wrap_content"
android:maxLength = "1"
android:id="@+id/mothermi"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="Last Name" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/motherlastname"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="35dp"
android:text="Suffix" />
<Spinner
android:layout_width="110dp"
android:layout_height="35dp"
android:id="@+id/spinner_suffix" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="Address" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/motheraddress"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="City" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/mothercity"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="State" />
<Spinner
android:layout_width="110dp"
android:layout_height="35dp"
android:id="@+id/motherstate" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="Zip Code" />
<EditText
android:layout_width="50dp"
android:layout_height="wrap_content"
android:maxLength = "5"
android:id="@+id/motherzip"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_gravity="center"
android:layout_marginTop="0sp"
android:background="#000000" />
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="Select League, Program, Team you are" />
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_gravity="center"
android:layout_marginTop="0sp"
android:background="#000000" />
<TextView
android:text="Select League"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:textStyle="bold"
android:id="@+id/textView2" />
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:id="@+id/league_spinner" />
<TextView
android:text="Select Program"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:textStyle="bold"
android:id="@+id/textView2" />
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:id="@+id/program_spinner" />
<TextView
android:text="Select Team"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:textStyle="bold"
android:id="@+id/textView2" />
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:id="@+id/team_spinner" />
<Button
android:text="Submit"
android:layout_width="200px"
android:layout_gravity="center"
android:layout_height="34.5dp"
android:id="@+id/button_submit" />
</LinearLayout>
</ScrollView>
</LinearLayout>
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/fab_margin"
app:layout_anchorGravity="bottom|end"
app:layout_anchor="@id/scrollView1"
app:srcCompat="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>
推荐阅读
- angular - 如何在 Angular 9 中使用 Validator.pattern
- java - 如何将字符数组转换为集合?
- java - 在 Java 已发送电子邮件的电子邮件正文上显示 SQL 查询中的数据
- postgresql - 在一处为所有序列配置 Postgres 自动递增序列起始值
- java - 在地图中添加项目时出现 ConcurentModificationException
- vue.js - VUE i18n 无法翻译错误信息
- java - 当我按下从数据库中检索数据的更新按钮时,如何立即更改 TextView 的值?
- database - 查询以禁用 Postgres 中特定用户的触发器
- c++ - 返回引用返回函数的局部引用与局部变量
- flutter - 颤振图像选择器maxDuration问题