2016-10-22 8 views
0

私は学校用プロジェクトとして小さなアプリを開発していますが、私はFABをdinamically動かす必要があります。 私はFloatingActionButtonを相対レイアウト内に配置しています。これは、実際には下部に配置され、水平に配置されています。RelativeLayoutで余白を設定した後に要素が消える

<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が消えます。 解決策を探していましたが、見つけられませんでした。どんな助け?ありがとう。

答えて

0

使用

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

または

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

代わりに、それはR.dimen.activity_horizontal_marginに割り当てられた内部IDではなく、あなたがXMLファイルに割り当てられた値を返すように直接R.dimen.activity_horizontal_marginを使用します。

+0

これは機能します!ありがとうございます! –

関連する問題