본문 바로가기

프로그래밍245

[Jetpack Compose] Column, Row, Box https://developer.android.com/codelabs/jetpack-compose-basics#5 Column과 Row는 LinearLayout와 비슷해 보이고 Box는 RelativeLayout이나 ConstraintLayout과 비슷해 보인다. import androidx.compose.foundation.layout.Column ... @Composable private fun Greeting(name: String) { Surface(color = MaterialTheme.colors.primary) { Column(modifier = Modifier.padding(24.dp)) { Text(text = "Hello,") Text(text = name) } } } Column의 파.. 2023. 2. 21.
[Android] Meterial 디자인 적용 아무디자인을 적용하지 않은 EditText의 경우 약간 밋밋할수있는데 Meterial Deisn을 적용할경우 아래 이미지처럼 보기 괜찮게 바꿀수있다. 해당 포스팅에서는 머티리얼 디자인을 적용하는 방법을 소개한다. style.xml style.xml의 parent를 위와같이 수정한다. build.gradle(:app) implementation 'com.android.support:design:30.0.0' implementation 'com.google.android.material:material:1.2.0' 앱단의 build.gradle에서 위와같이 라이브러리를 추가한다. 그 후 XML에서 사용할때 아래와같이 TextInputLayout으로 감싸주면된다. 이미지 출처 : https://stackove.. 2023. 2. 21.
[Android] LinearLayout, ConstraintLayout의 차이점 1. LinearLayout 각 객체를 상대적으로 배치할수없고, 배치를 하려면 중첩구조로 만들어야한다. 뷰를 모두 한 방향으로만 배치할수있다. 많이 사용하게되면 중첩구조를 가지므로, 한눈에 알아보기 힘들다 2. ConstraintLayout 각 객체에 대해 위치를 상대적으로 배치할수있다. 3. LinearLayout이 ConstraintLayout로 대체되고 있는 이유 LinearLayout을 많이 사용하면 필연적으로 중첩이 많이 될수밖에 없는데, ContraintLayout을 사용하면 중첩구조를 가지지않으면서 위치를 상대적으로 배치할수있다. 2023. 2. 21.
[Android] Popup Menu 방법1 style.xml drawable\menu_style.xml binding.imageButtonData.setOnClickListener(object : View.OnClickListener { override fun onClick(v: View) { val wrapper: Context = ContextThemeWrapper( this@현재액티비티명, R.style.PopupMenuTheme ) val popup = PopupMenu(wrapper, v) //v는 클릭된 뷰를 의미 var setting = SpannableString("환경설정" + " ").also { it.setSpan( AlignmentSpan.Standard(Layout.Alignment.ALIGN_OPPOSITE), 0.. 2023. 2. 20.