我的一些浮动操作按钮不会保留在我想要的位置,我无法理解原因。 第一个是他们应该如何(实际上有时它是有效的),另外两个图像显示他们有时表现如何......我找不到"模式"在这种行为中。
这是布局(只有一半):
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/lay_attivita_edit_ubicazioni"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="@dimen/list_padding_lateral"
android:paddingRight="@dimen/list_padding_lateral">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:id="@+id/container_attivita_edit_origini">
<TextView
style="@style/FieldLabel"
android:layout_marginTop="20dp"
android:text="@string/attivita_edit_origini" />
<ListView
style="@style/ListView"
android:id="@+id/list_attivita_edit_origini"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:fadeScrollbars="false"
android:background="@drawable/border_rectangle" />
</LinearLayout>
</LinearLayout>
<android.support.design.widget.FloatingActionButton
style="@style/FloatingActionButton.Small"
android:id="@+id/fab_attivita_edit_ubicazioni_edit_origini"
app:layout_anchor="@id/list_attivita_edit_origini"
app:layout_anchorGravity="top|right|end" />
</android.support.design.widget.CoordinatorLayout>
我还尝试以编程方式查看anchor
和anchorGravity
,但结果是一样的。可能会发生这种情况,因为根据某些逻辑,如果我在OnCreateView
的末尾使它们不可见,则无法看到这两个部分中的一部分。
它并不依赖于&#34;锚列表的可见性&#34;因为即使我总是让两个列表都可见,工厂也会移动。 我还尝试在每次更改它们或它们的列表的可见性时,以编程方式更改fab的anchor和anchorId。
CoordinatorLayout.LayoutParams editOrigineFabParams = (CoordinatorLayout.LayoutParams)editOrigineFab.LayoutParameters;
editOrigineFabParams.AnchorId = Resource.Id.list_attivita_edit_origini;
editOrigineFabParams.AnchorGravity = (int)(GravityFlags.Top | GravityFlags.Right | GravityFlags.End);
editOrigineFab.LayoutParameters = editOrigineFabParams;
使用相同的条件/代码有时他们会工作,有时他们不会。它看起来像Android中的一个错误。我尝试使用Android 7.0和7.1,Xamarin.Android.Support.Compat.25.3.1。 任何有类似问题或者想知道可能是什么原因的人?
答案 0 :(得分:1)
james montemagno使用FAB。
将james montemagno中的FAB从nuget添加到您的项目中。 https://www.nuget.org/packages/Refractored.FloatingActionButton/
<Refractored.Fab.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_margin="16dp"
android:src="@drawable/ic_action_content_new"
app:app_colorNormal="@color/primary"
app:app_colorPressed="@color/primary_pressed"
app:app_colorRipple="@color/ripple" />
答案 1 :(得分:0)
使用layout_gravity进行定位。
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:src="@drawable/ic_edit"
android:layout_marginRight="15dp"
android:layout_marginBottom="15dp" / >