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

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" />
    
    • 오!! 감사합니다! 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

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.