FloatingActionButton 위치 지정하기


안녕하세요! FAB의 위치를 변경할 방법을 잘 몰라서 질문올립니다 ㅠ

이미지 이름이나 설명을 여기에 넣어주세요.

위의 그림과 같이 뷰들이 배치되어있습니다. 그림에서의 FAB는 Acitivity_main.xml 파일안에서 CordinatorLayout 안에 있으며, 가장 큰 네모(가장 바깥네모, 빨간색을 포함한)의 center에 위치해 있습니다. 음... 핸드폰 액정의 센터? 라고 할 수 있겠네요.

그런데 저는 지금 빨간색 네모의 center에 맞춰주고 싶은데 그렇게 하려면 어떻게 해야할까요? 뷰들은 content_main.xml 파일안에 있고, 전부 LinearLayout으로 구성이 되어있습니다.

제가 생각하기에는... 음... 저 빨간색 네모의 위치를 가져와서 계산을 통하여 센터를 구하고 그 위치를 FAB의 위치에 setting 해주면 되지 않을까 하는데...

그 위치를 가져오는 방법이 param 이라고 어디선가 본적은 있는데 아직 사용을 해본적이 없네요 ㅠ FAB를 CordinatorLayout안에서 위치를 param을 통해서 바꿀수 있는지도 잘 모르겠고....

혹시 이 방법이 가능한 가요? 가능하다면 param에 대해서 공부를 해봐야할 듯 하네요ㅠ


  • 특정 뷰를 기준으로 잡고 getX,getLeft,getTranslationX 등을 써봤는데 전부 0으로 반환되서 실패네요 ㅠㅠ    TuTanKhamen   2016.4.16 17:53     
조회수 746


2 답변


좋아요
1
싫어요
채택취소하기

빨간색 네모는 하나인건가요? (질문을 제대로 이해한건지 모르겠네요^ ;)

빨간색 네모가 하나인것으로 보고 FloatingActionButton의 anchor를 빨간색 네모로 잡아주고 layout_anchorGravity에 center_vertical|center_horizontal로 주면 될것 같아요.

    <android.support.design.widget.FloatingActionButton
        ...생략
        app:layout_anchor="@id/빨간색네모아이디"
        app:layout_anchorGravity="center_vertical|center_horizontal" />
  • 2016년 04월 16일에 작성됨
    안드로이드, 루비온레일즈

  • 오!! 감사합니다! anchor라는 속성이 있는지 몰랐네요! 혹시 앵커는 cordinatorLayout 안에 있는 것에만 적용할 수 있는 것으로 이해했는데 맞나요?    TuTanKhamen   2016.4.16 21:54     
  • @TuTanKhamen 네 맞습니다~     송주연   2016.4.17 12:02     
  • 감사합니다!    TuTanKhamen   2016.4.17 17:21     

저도 CoordinatorLayout에 대해 자세히는 모르지만, LinearLayout처럼 child view들이 layout_gravity 속성을 갖고 있습니다. FAB의 layout_gravity를 center로 설정해보세요.

<android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_dialog_email" />

  • 위에 그림이 center를 준 그림입니다 ㅠ    TuTanKhamen   2016.4.16 21:55     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close