【问题标题】:Element disappears after setting margins on RelativeLayout在 RelativeLayout 上设置边距后元素消失
【发布时间】:2016-10-22 19:49:15
【问题描述】:

我正在开发一个小型应用程序作为学校项目,我需要动态移动 FAB。 我在相对布局中有一个 FloatingActionButton,它实际上是底部对齐和水平对齐的。

<RelativeLayout 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"
    tools:context="com.pagiaro.nicola.quiz2_0.HomeActivity"
    android:id="@+id/home_rl" >

    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="true"
        app:fabSize="normal"
        app:srcCompat="@drawable/ic_quiz"
        android:id="@+id/fab_inizia"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginRight="@dimen/activity_horizontal_margin"
        android:layout_marginBottom="@dimen/activity_vertical_margin"
        app:backgroundTint="@color/accentColor" />

</RelativeLayout>

我用来移动它的代码是:

   final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab_inizia);

   final RelativeLayout.LayoutParams rlp_keyboard_is_open = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT);

    rlp_keyboard_is_open.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    rlp_keyboard_is_open.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

    fab.setLayoutParams(rlp_keyboard_is_open);

但是使用此代码,我的 FAB 没有右边距和下边距。当我添加代码以添加边距时,问题就来了。

    rlp_keyboard_is_open.setMargins(0, 0, R.dimen.activity_horizontal_margin, R.dimen.activity_vertical_margin);

    rlp_keyboard_is_open.rightMargin = R.dimen.activity_horizontal_margin;
    rlp_keyboard_is_open.bottonMargin = R.dimen.activity_vertical_margin;

如果我添加此代码,FAB 就会消失。 我搜索了很多解决方案,但没有找到。有什么帮助吗?谢谢。

【问题讨论】:

    标签: java android xml android-relativelayout margins


    【解决方案1】:

    使用

    getResources().getDimension(R.dimen.activity_horizontal_margin)
    

    getResources().getDimensionPixelSize(R.dimen.activity_horizontal_margin)
    

    而不是直接使用 R.dimen.activity_horizontal_margin,因为它返回分配给 R.dimen.activity_horizontal_margin 的内部 ID,而不是您在 XML 文件中分配的值。

    【讨论】:

      猜你喜欢
      • 2013-06-24
      • 1970-01-01
      • 2012-04-06
      • 2015-04-24
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多