본문 바로가기

[11일차] Dialog Dialog 다이얼로그는 Builder라는 걸로 생성한다. Builder라는 거는 주어진 조건이 너무 많아서 나온것이다. Builder 객체를 생성해서 넘겨준다. 값을 변경하는 객체를 가지고 사용하기만 한다. Builder패턴 Custom 하는건 별개다. 이렇게 만들어진 걸 show()를 호출하면 된다. 다이얼로그를 관리하는건 다른 얘기다. 화면을 띄운 이유에 따라 관리가 달라진다. Dialog의 액션과 같이 관리해야한다. 단위 화면과 동작을 관리하는 애가 fragment 이므로 dialog도 fragment 를 이용하여 만든다. 다이얼로그를 만들고 builder.create()로 만든다. 그리고 .show()를 하면 다이얼로그를 보연준다. 더보기
[11일차] CustomNavigationActivity NavigationDrawer DrawerLayout첫번째 차일드는 메인컨텐트이다. Draw에 elevation 이다. public class NaviDrawerActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_navi_drawer); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupport.. 더보기
[11일차]collapsingLayout collapsingActivity recyclerView 스샷으로 떠야겠다. 탭 위에 플로팅 메뉴를 띄울 수 있는데, 이미지 cordinateLayout 에는 이미지 뷰도 넣을 수 있다. 근데 이미지 뷰는 elevation값이 0이므로 스크롤 하면 ㄷ탭 뒤에 가려지게 된다. elevation값을 따로 설정해 주면 되는데 여기서 하위 버전은 elevation값이 없기 때문에 imageview를 상속한 클래스를 만들어주고 xml에 선언해주면 된다. imageivew를 상속한 클래스에서 getElevation값에 dp값을 retrun 해주면, 하위 버전에서도 호환 가능하다. 여기까지 만들 수 있으면 Basic Activity를만들 수 있다. 흐미흐미흐미희므히믜흐므히므히므히므히므히ㅡㅁ흐미ㅡ히므히므히므히ㅡ믛미ㅢ .. 더보기
[11일차] Meterial Design 탭,텍스트 인풋,FloationActionButton,appBarLayout 탭 레이아웃과 뷰페이져를 연동. FragmentPagerAdapter를 상속받아 자바클래스 생성 이거를 탭레이아웃과 연동하려면 getPageTitle을 구현해야한다. 이건 탭에 보여질 이름을 넘기는 거다. 탭 모양을 바꾸고 싶으면 tabs.removeAlltabs() 해서 지우고 tabs.add해서 tabs.newTab().setText(""+i)해서 바꾸어 넣는다. setupWithViewPager 하는 시점에 탭을 추가하기 때문에 tabs.removeAllTabs를 나중에 해줘야한다. 뷰페이져 에서 타이틀을 나타내려면 프래그먼트에서 setUserVisibleHint()를 해줘야 한다. if(visibleToUser){getActivity.setTitle(message);} textInput Layou.. 더보기
[10일차]TabLayout 탭호스트랑 뷰페이져를 자동으로 해준다. TabLayout을 넣으면 된다. tabs와 container를 xml에 넣는다. 이렇게 해가지고 탭을 배치 한 후에 탭레이아웃 안에 탭 아이템을 넣어야한다. 근데 별로 좋은 방법같진 않다. 크기는 지정해야한다. 텍스트만 지정해줘도 된다. 여기다가 탭에 이름을 지정한다. 이렇게 하면 아이디를 지정할 방법이 없어진다. 그래서 코드상에서 지정하겠다. 멤버변수로 텝레이아웃 할당 onCreate에서 tabs선언Fragment 하나 만든다. 콜백은 필요없고, tabs에 addTab을 해서 탭을만들고 tabs에 addTabListener를 통해서 화면을 뿌려준다. 더보기
[10일차] Toolbar,MeterialDesign 액션바랑 똑같은건데 커스텀을 해줄 수 있다. 툴바의 모양은 액션바와 똑같다 이거를 맘대로 화면에 배치해서 쓸 수 있다. 앱테마를 상속한 스타일을 만든다. 테마를 이렇게 만들면 타이틀이 안보인다. 이걸 적용하려면 메니페스트에 테마를 적용해야 한다. Meterial Design 구글의 디자인 가이드 라인. 안해도 되지만 따라가면 친숙한 UI가 된다. 그래서 Meterial Design이 중요한다. 며오학한 색깔로 만들어서 아름답고 직관적인 자연스러운 애니메이션. 질감이 느껴지는 특징? 깊이라는 것을 둔 것이다. 색깔 같은경우에도 미리 만들어서 이렇게 쓴다 식으로 배포하고 있다. 색하고 아이콘을 만들어서 배포한다.카드뷰를 저렇게 배치하려면 기본적으로 마진값을 가져야한다. 마진값이 있어야 그림값으ㅡㄹ 그릴수가 .. 더보기
[10일차] UpNavigation UpNavigation clearTop을 써서 차일드가 바로 부모곁으로 ...... HomeAsUp을 쓴다. 결국 좀 부족하므로 메니페스트의 누가 누구의 페어런트인지 등록해주고 NavUtils.navigte 를 해주면 클리어탑 플래그를 구동하고 메인을 실행하고, 자신을 finish 한다. 별거 아니다... 그렇게 해주면 만들어 놓고 써서 하면 되는데 문제 `는 최상단은 액션메인 카테고리 런처라고 생각한다. 근데 이게 항상 첫화면은 아니다. 이거를 splash 화면으로 만들어 놓을 수도 있다. 이게 논리적으로 말이 안되는 경우가 많다 그래서 이걸하기 보다는 플래그를 가지고 벡스택을 이용해서 구현해야 한다. BackNavigation 더보기
[10일차]ActionBar 액션바 선언 액션바 = getSupportActionbar() 액션바.setDisplayHomeASUpEnabled onItemSelected 메소드에서 호출 아이콘을 띄우면 아이콘 주변 여백을 inset이라고 한다. 모양 다 바꿀 수 있다. 타이틀 정렬 속서이 없다. 커스텀 뷰를 놓고 가운데에 놓는다. 근데 정확히 가운데 가 아니다. actionbar.setDisplayShowCustomEnabled(true); 해야 텍스트 뷰를 넣을 수 있다. 그 밑에 텍스트 뷰를 = getLayoutInflater().inflater 해서 만든다. 이렇게 해서 만든 텍스트뷰를 tv.setText(); 이렇게 세팅하고 actionBar.setCustomView(tv)해주면 된다. 액션바 기능은 이게 다다 더보기
[10일차] ActionMode startSupportActionMode() 로 띄우면 된다. onCreateActionMode 에서 생성하고 일반적으로 여기이 안에 Menu inflater 얻어서 그리기 onPrepareActionMode에서 이미 생성되잇는 모드 ActionItemClick에서 사라지게 하려면 finish() 해주면 된다. 지금은 ActionMode로 띄운다. 팝업 메뉴 anchor - 팝업을 띄울 기준이 되는 뷰. public class ActionModeActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV.. 더보기
[10일차] 옵션 메뉴 메뉴메뉴 - 기능의 목록 메뉴라고 하는거는 기능을 나타내는 글자들의 묶음. 옵션 메뉴 각각의 화면마다 설정된 주요 메뉴임. 컨텍스트 View를 길게 누르면 나타나는 메뉴로 텍스트뷰의 편집 상태를 바꾸거나 할 때 사용하는 메뉴임. 팝업 메뉴ActionMode 메뉴 메뉴 생성 onCreateOptionsMenu() 메뉴 선택 처리 - onOptionItemSelected(); ActionMenu액션바에 배치되는 메뉴 menu XML 속성menuItemgroup에도 id 를 놓을 수 있다. 선택된 id를 가지고 무엇이 눌렸는지 알아보는거다. onClick 잘안쓴다. 메뉴를 액티비티만 쓰는게 아니라 프래그먼트에도 쓸 수 있기 때문에 showAsActiondefalt는 naver 안보여 주겠다. 메뉴키를 누르면 .. 더보기