FloatingActionButton 위치 지정하기

조회수 6176회

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

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

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

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

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

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

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

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 특정 뷰를 기준으로 잡고 getX,getLeft,getTranslationX 등을 써봤는데 전부 0으로 반환되서 실패네요 ㅠㅠ 알 수 없는 사용자 2016.4.16 17:53

2 답변

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

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

        <android.support.design.widget.FloatingActionButton
            ...생략
            app:layout_anchor="@id/빨간색네모아이디"
            app:layout_anchorGravity="center_vertical|center_horizontal" />
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
  • 저도 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" />
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)