본문 바로가기

안드로이드 스튜디오(JAVA)

안드로이드 스튜디오 GridView Constraint Layout으로 구현하기

GridView에 대해 알기전 이미 구현하다가 ListView를 배우고 검색하다 GridView를 찾게되어서 더이상 사용하지 않지만 열심히 만들었기에 아까워서라도 올립니다..ㅎ

사용중인 레이아웃 설정 및 버튼 생성

사용중인 레이아웃을 찾은 뒤 ConstraintLayout params를 만들고, 버튼을 만들어 줍니다.

버튼에 마진을 주려고 params에 margin값을 아무리 넣어도 안되더라구요. 그래서..

constraintSet

위 처럼 마진값을 else -> if 안에 constraintSet.setMargin을 통해 넣어줍니다.

constraintSet.connect 부분이 constraint layout xml에서 사용되는 start to start, top to top등을 연결해주는 부분과 동일합니다.

그래서 생성한 버튼의 id를 btn.getId()로 가져오고, 다른 버튼의 아이디를 찾아 앞, 뒤를 연결해주면 됩니다.

나머지 else부분

if, else 등 여러개가 나와있는 이유는, 처음 버튼을 넣을 땐 앞에 고정 시켜주고(else -> if 부분) 그 뒤에 생성되는 버튼들은 앞의 버튼 아이디값을 가져와 위치를 맞춰주고(else->else 부분), 4개의 버튼을 만든 후에는 다음줄로 넘어가도록 하였습니다.(if 부분) 

해당 버튼들 지울 떄 사용

만들었으면 지울 수도 있어야겠죠?

위에 처럼하면 만든 버튼들을 싹다 지울 수 있습니다.

원래라면 GridView 대신 위 내용들을 사용해서 쭉 하려 했는데 아무래도 GridView를 사용하면 자동으로 스크롤이 생기면서 무한대로 추가가 가능하니.. 옮겨 탔지만 로직은 완벽합니다..!

그리고 한글로 검색 했을 때 나오지 않은 부분들이 많아서 영어로 검색하며 찾은 다양한 정보들이 있어, 도움이 될거라 믿습니다.

 

참고로 mainActivity에서 하는게 아니라 저처럼 fragment에서 사용한다면 context 등 불러올 떄 this 안먹히고 getActivity() 해야합니다!