분류 전체보기 (47) 썸네일형 리스트형 [Android] 내가 기억하려고 정리하는 MVVM 패턴 Model-View-ViewModel의 약자. View : 사용자에게 보여지는 화면 View는 ViewModel을 관찰하고 있다가 상태 변화가 전달되면 화면을 갱신한다. ViewModel : View를 나타내기 위한 Model View와 Model 사이의 매개체 역할. UI관련 데이터를 저장하고 관리 Model : 데이터 관리 MVVM의 장점 : Command와 DataBinding으로 View와 ViewModel사이의 의존성이 없다. Observer패턴을 이용해 자동으로 UI를 갱신해준다. MVVM의 단점 : ViewModel 설계가 쉽지 않음. 코딩의 양이 늘어나고 복잡하여 관리가 어려울 수 있다. [Android] android.database.CursorIndexOutOfBoundsException 내부 저장소에서 목록을 불러와 리스트를 만드는데 다음과 같은 에러가 생겼다. android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 6 cursor의 초기 위치를 지정해주지 않아 발생되는 문제이다. cursor.moveToFirst(); 를 사용해 cursor를 맨 첫번째로 이동시켜 주면 해결된다. [Android] BottomNavigationView Fragment 적용 지난번에 BottomNavigationView를 만들었다면 화면과 연결을 해보자 한 액티비티에 BottomNavigationView 와 FrameLayout을 넣고 FrameLayout에 들어갈 여러개의 Fragment를 연결해주려고 한다. 먼저 activity_main.xml에 FrameLayout을 추가한다. 추가했다면 frameLayout에 Fragment를 추가해주어야 한다. 나는 기존 BottomNavigationView에 5가지 아이템을 넣었으니 5개의 프래그먼트를 추가하겠다. (각각 PlayListFragment, SongFragment, ArtistFragment, AlbumsFragment, FolderFragment) layout-New-Fragment-Fragment(Blank)로 추.. [Android] BottomNavigationView 구현하기 밑에 사진은 많은 앱들을 실행해보았을 때 쉽게 볼 수 있는 화면이다. 바로 BottomNavigationView인데 어떻게 구현할까? BottomNavigationView을 만들기 위해선 먼저 activity_main.xml에 BottomNavigationView를 추가해준다. labelVisibilityMode 속성은 아이콘 밑에 텍스트가 보여질지 설정하는 것이다. 이렇게 만들면 menu에 에러가 뜨게 되는데 menu파일을 아직 만들지 않아서 그렇다. 이후에 BottomNavigationView 안에 들어갈 아이템들을 만들어보자. res-New-AndroidResource File을 만들어 menu파일을 생성한다. menu 파일을 생성했다면, 각 아이템들을 만들어보자. *menu 아이템은 3개 이상 만.. [Flutter] Text 테두리 그리기 Text에 밑줄 친 효과를 넣어 보려고 한다. bottomBorder이 들어간 Container 안에 Text를 넣어주면 된다. class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home:new Scaffold( appBar: AppBar(title: Text('Test'),), body: Container( decoration: BoxDecoration( border: Border(bottom: BorderSide(color: Colors.black)), ), child: Row( mainAxisAlignment: MainAxisAlignment.center, chi.. [Flutter]TabBar 만들기 이번시간엔 간단한 상단의 TabBar와 TabBarView를 만들어보자. 먼저 완성된 화면을 보면 3개의 탭과 탭바뷰가 있다. 상단 버튼을 눌러도 이동하고, 좌우로 스와이프를 해도 해당 화면으로 변경된다. 우선 프로젝트를 하나 만들어보자. import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp(home: DefaultTabController( length: 3, child: Scaffold( appBar: AppBar( bottom: TabBar(.. [Android] 버튼 커스텀 하기 - Ripple Effect 방법 버튼 클릭 시 ripple 효과 주려고 한다. Ripple 효과는 버튼을 눌렀을 때 눌린 곳 부터 다른 색으로 점점 퍼져나가는 효과이다. 먼저 res - drawble 폴더에 btn_ripple_effect.xml 파일을 만들어 준다. xml 파일을 작성 한 후 activity_main.xml 파일로 이동해 버튼을 하나 만들어 준다. 작성하면 위처럼 버튼이 하나 만들어지게 된다. 여기서 버튼의 효과를 주기 위해서 처음에 만들어 둔 btn_ripple_effect.xml 파일을 버튼의 background에 넣어준다. 그리고 확인해 보면,, 처음엔 흰색 배경의 버튼이 보이지만 클릭 하면 물결모양으로 파란색이 퍼져나가는 것을 볼 수 있다. [Android]Thread에서 UI바꾸기 쓰레드를 돌리다 보면 쓰레드 내에서 UI를 변경할 수 없다는 에러를 본 적이 자주있다. UI를 변경하기 위해 사용하는 것이 runOnUiThread 이다. runOnUiThread(new Runnable() { @Override public void run() { //변경할 UI 코드 작성 } }); 이전 1 2 3 4 5 6 다음