修复了可滚动 RelativeLayout 中的 FAB 按钮
Fixed FAB button inside a scrollable RelativeLayout
我有一个可滚动的 RelativeLayout,其中包含一些 EditText、ImageView 和其他视图元素...
<ScrollView...
<RelativeLayout
<TextView...
<ImageView...
<Button...
...
</RelativeLayout>
</ScrollView>
所以现在我想在其中插入一个 FAB 按钮,这样我就可以滚动所有布局(EditText、ImageView 等),但 FAB 固定在屏幕的底部|右侧位置。我怎样才能做到这一点?提前致谢。
FAB 的代码片段
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/fab_margin_bottom"
android:layout_marginRight="@dimen/fab_margin_right"
android:src="@android:drawable/icon" />
如果相对布局高度与父级匹配,这将使 FAB 稳定在底部。
你的布局应该有这样的结构:
<android.support.design.widget.CoordinatorLayout
xmlns:app="http://schemas.android.com/apk/res-auto">
<ScrollView
android:id="@+id/svContent"
.....
</ScrollView>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
.....
app:layout_anchor="@id/svContent"
app:layout_anchorGravity="bottom|right|end" />
</android.support.design.widget.CoordinatorLayout>
并注意属性 layout_anchor
和 layout_anchorGravity
。
我有一个可滚动的 RelativeLayout,其中包含一些 EditText、ImageView 和其他视图元素...
<ScrollView...
<RelativeLayout
<TextView...
<ImageView...
<Button...
...
</RelativeLayout>
</ScrollView>
所以现在我想在其中插入一个 FAB 按钮,这样我就可以滚动所有布局(EditText、ImageView 等),但 FAB 固定在屏幕的底部|右侧位置。我怎样才能做到这一点?提前致谢。
FAB 的代码片段
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/fab_margin_bottom"
android:layout_marginRight="@dimen/fab_margin_right"
android:src="@android:drawable/icon" />
如果相对布局高度与父级匹配,这将使 FAB 稳定在底部。
你的布局应该有这样的结构:
<android.support.design.widget.CoordinatorLayout
xmlns:app="http://schemas.android.com/apk/res-auto">
<ScrollView
android:id="@+id/svContent"
.....
</ScrollView>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
.....
app:layout_anchor="@id/svContent"
app:layout_anchorGravity="bottom|right|end" />
</android.support.design.widget.CoordinatorLayout>
并注意属性 layout_anchor
和 layout_anchorGravity
。