개발하는 두더지

[Android] 프래그먼트(Fragment)에 구글맵(GoogleMap) 자동완성검색 위젯 추가하기 본문

Java,Android

[Android] 프래그먼트(Fragment)에 구글맵(GoogleMap) 자동완성검색 위젯 추가하기

덜지 2017. 5. 19. 18:11

Fragment에 구현된 구글 맵에 자동완성검색 위젯을 추가해보도록 하겠습니다.










1. 구글 맵 위에 위젯 올리기


2. 위젯 리스너 추가하기


3. 결과값에 마커 표시하기


위 순서로 진행하겠습니다.




fragment_fragment1.xml


프래그먼트에는 테두리나 배경이 없습니다. 그래서 시각적 모양을 보여주려면, 또다른 레아웃 요소 내에 프래그먼트를 중첩시켜줘야 합니다. 

Activity에 올리는 경우는 아래 코드만 xml에 넣으시면 됩니다.


<fragment
 
android:id="@+id/place_autocomplete_fragment"
 
android:layout_width="match_parent"
 
android:layout_height="wrap_content"
 
android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
 
/>



위에서 사용한 CardView의 특징을 간략하게 살펴보겠습니다.


CardView는 FrameLayout 클래스를 확장하고 카드 내의 정보를 플랫폼에서 일관된 모습으로 표시할 수 있도록 합니다. 

CardView위젯은 그림자와 둥근 모서리를 가질 수 있습니다.

  • 레이아웃에 모서리 반지름을 사용하려면 card_view:cardCornerRadius 특성을 사용합니다.
  • 코드에서 모서리 반지름을 설정하려면 CardView.setRadius를 사용합니다
  • 카드의 배경색을 설정하려면 card_view:cardBackgroundColor 특성을 사용합니다.
CardView 위젯은 v7 지원 라이브러리의 일부이기때문에 프로젝트에서 사용하려면 Gradle 종석성을 추가해야합니다

dependencies {
   
...
    compile
'com.android.support:cardview-v7:21.0.+'
}



위의 코드를 쓰시면서 CardView 클래스를 찾을 수 없다는 에러 메시지가 출력된다면 



 compile 'com.android.support:cardview-v7:사용중인버전'  을 Gradle에 추가하시면 됩니다.






Fragment1.java


나머지 코드는 이전에 만든것들과 동일하며 onCreateView만 코드를 추가하면 됩니다.


PlaceAutocompleteFragment 객체를 생성하고 핸들을 연결합니다.

그리고 결과값 선택 리스너를 추가합니다.




Comments