기본 콘텐츠로 건너뛰기

안드로이드 액티비티의 시스템 UI, 뷰 영역 제어

ActivityMainBinding    activityMainBinding = ActivityMainBinding.inflate ( getLayoutInflater ( ) );

activityMainBinding.getRoot ( ).setSystemUiVisibility (

   //안전한 시스템 UI 레이아웃을 유지하도록 지정

   //뷰가 시스템 UI의 변경으로 인해 크기나 위치가 변해도 안정된 레이아웃을 유지할 수 있다.

   View.SYSTEM_UI_FLAG_LAYOUT_STABLE |       

   //뷰가 내비게이션 바가 표시되는 영역까지 확장

   | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION  

   //뷰가 상태바가 표시되는 영역까지 확장

   | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN  

   //내비게이션 바를 숨겨, 사용자의 터치나 제스처로 내비게이션 바가 나타나지 않도록 한다.

   | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 

   // 상태바를 숨겨, 사용자의 터치나 제스처로 상태바가 나타나지 않도록 한다.

   | View.SYSTEM_UI_FLAG_FULLSCREEN  

   //사용자가 액티비티의 화면 어느 곳이든 터치하면 시스템 UI가 일시적으로 표시되지만, 일정 시간이 지나면 다시 숨겨진다.

   | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY );


setContentView ( activityMainBinding.getRoot ( ) );


/* 결과적으로 위 코드를 통해 전체 화면을 차지하는 뷰를 만들고, 사용자가 화면을 터치하면 잠시 시스템  UI가 나타나도록 할 수 있다.

댓글

이 블로그의 인기 게시물

화낙(FANUC) CNC 데이터 수집 프로그램

화낙 CNC에서 200개가 넘는 상태값을 뽑아오고 프로그램을 백업하거나 복구하는 프로그램입니다. 단독형, 서버형, MES(POP) with CNC 형태로 구성가능합니다 CNC 운영정보와 함께 전력량계를 통한 전압/전류/주파수 정보를 파악하여 추가적인 분석에 활용 가능합니다. ​ 수집데이터 샘플입니다. ======Statusinformation====== state run(0.reset 1.stop 2.hold 3.start) = 3 m,s,t,b status 0.other 1.Fin = 1 axis motion(0.? 1.Motion 3.Dwell = 0 state automatic mode 0: ****(Noselection)1 : MDI 2 : TAPE(Series 15),DNC(Series15i) 3 : MEMory4 : EDIT 5 : TeacHIN = 1 T/Mmode(0.T 1.M) = 0 max emergency(0.Not 1.Emergency 2.Reset) = 0 Alarm(0.other 1.alarm 2. Batterylow 3. FAN 4.PS warning 5.FSSB waring 6.Leakage waring 7.Encoder waring 8.PMC alarm= 0 ​ =====Actualfeedrate====== name(F.feedrate S.Spindlespeed: F feed rate data: 0 feed rate decimal point: 0 feed rate unit(0.mm/min 1.inch/min 2.rpm 3.mm/rev 4.inch/rev): 0 feed rate display flag: 0 select position: 0 ​ ====== Actualspindlespeed ====== name(F.feedrate S.Spindlespeed: S spindle speed data: 3467 spindle speed decimal po...

ConstraintLayout을 뷰의 오른쪽 사이드 중간에 배치해야 할때

안드로이드 스튜디오에서 자바기반의 앱을 만드는 과정에서 ConstraintLayout을 뷰의 오른쪽 사이드 중간에 배치해야할 상황이 생겼다. 아래 4개 속성으로 부모뷰의 오른쪽 사이드 중간에 배치문제 해결. //오른쪽에 배치될 수 있도록 설정 app:layout_constraintRight_toRightOf="parent" //수직으로 중앙에 위치시키도록 설정 app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" // 뷰를 수직으로 중앙에 위치시키기 위한 비율 값 설정. 0.5는 화면의 중앙에 위치하는 값 app:layout_constraintVertical_bias="0.5"

2 files found with path 'lib/x86_64/libc++_shared.so' from inputs: 오류 해결 방법

안드로이드스튜디오로 앱을 개발하는 과정에서 플러그인, 외부 라이브러리를 추가하다 보면 "2 files found with path 'lib/ x86_64 /libc++_shared.so' from inputs: "과 같은 오류를 만날 수 있다. 'lib/x86_64/libc++_shared.so' 파일이 2개의 라이브러리에서 참조되어 발생하는 문제로 컴파일 환경에 따라 플랫폼 부분은 변경되면 나타날 수 있다 app수준의 build.gradle 파일에 다음과 같이 처리하면 관련 문제를 깔끔하게 처리 가능하다. android { ... packagingOptions { pickFirst 'lib/ x86 /libc++_shared.so' pickFirst 'lib/ x86_64 /libc++_shared.so' pickFirst 'lib/ arm64-v8a /libc++_shared.so' pickFirst 'lib/armeabi-v7a/libc++_shared.so' } ... } * 실제 내 앱소스내 코드임 * 위와 같이 컴파일 환경에서 제공하는 플랫폼별 참조를 전부 한번에 처리하는게 관련 오류를 원천 차단할 수 있는 방법이다.