안드로이드 끄적끄적 #1

Yerin·2022년 8월 10일
0

안드로이드

목록 보기
1/2
post-thumbnail

뷰바인딩

내 블로그에서는 자세히 무언가를 설명하지 않을 것이다.
왜냐? 나도 잘 몰라서 구글링 하기 때문이다.
여기서는 내가 계속해서 잊는 코드를 복기하는 블로그를 쓰고자 한다 (야호 ~)

참고문서 : 내가 제일 많이 찾아보는 홍드로이드..


프로젝트 생성 후 첫 뷰바인딩 설정

andorid{
	# android 내에 다음과 같은 코드 작성  
    buildFeatures{
    	viewBinding true
    }
}

activity 내에서 xml을 바인딩

class MainActivity : AppCompatActivity() {

    private var _binding: ActivityMainBinding?= null
    private val binding get() = _binding!!

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        _binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)
    }
    
    override fun onDestroy() {
        mBinding = null
        super.onDestroy()
    }
    
}

이렇게 하면 binding 바인딩 변수를 활용하여 마음 껏 xml 파일 내의 뷰 id 접근이 가능해진다
id도 파스칼케이스 + 카멜케이스의 네이밍규칙 적용으로 인해서 예) tv_message -> tvMessage 로 자동 변환 된다고 한다.

만약 fragment 내에서 xml을 바인딩 하고 싶다면 다른 방법으로 해야한다


fragment 내에서 xml을 바인딩

class MainFragment : Fragment() {

    private var _binding: FragmentMainBinding? = null
    private val binding get() = _binding!!
    
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        _binding = FragmentMainBinding.inflate(inflater, container, false)
        return binding.root
    }

    override fun onDestroyView() {
        _binding = null
        super.onDestroyView()
    }
}

참고 : activity VS fragment
요약하자면 activity 내에 fragment를 쌓을수 있음. (fragment 내 fragment 도 가능) fragment는 독자적으로 활동 불가능



UI 수정

상단바 (액션바) 제거하기

참고

나는 themes.xml 에

<!-- Remove action bar. -->
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>

로 그냥 해결했다.
근데 블로그 보니까 메인 액티비티 내에서 없애주는게 확실하다고는 한다.. (쩝..)


상태바 색상 변경

는 themes.xml에서 걍 바꿔주면 되겟쥬?
만약 없애고 싶다면 문서 참고


배경색깔 변경

<item name="android:windowBackground">#F5F5F5</item>

버튼 색 투명으로 변경


android:background="@android:color/transparent"


텍스트 뷰

상자 안에 텍스트 뷰 가두기

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid
        android:color="@color/main_green" />
    <padding
        android:left="45px"
        android:top="15px"
        android:right="45px"
        android:bottom="15px" />
    <corners
        android:radius="30px" />
</shape>

drawble 내에 이런 상자 스타일 서식을 하나 생성


android:background="@drawable/style_textbox_green"

그리고 나서 < TextView > 안에 background 설정해주면 끝 ~


상자 속에서 가운데 정렬

android:textAlignment="center"
android:gravity="center"

이 두 줄이면 깔끔하게 끝 ! 수직 수평 모두 정렬 된다구 ~

profile
𝙸 𝚐𝚘𝚝𝚝𝚊 𝚕𝚒𝚟𝚎 𝚖𝚢 𝚕𝚒𝚏𝚎 𝙽𝙾𝚆, 𝙽𝙾𝚃 𝚕𝚊𝚝𝚎𝚛 !

0개의 댓글