Android Lollipop에서 확장 된 높이 툴바 / 액션 바를 어떻게 선언하나요?
Google Design App Bar 지침 에서 확장 된 높이 앱 바를 보았습니다 . Android Lollipop에서 어떻게 구현합니까?
이를 위해서는 새로운 툴바 위젯을 사용해야합니다. 툴바는 버튼 (및 액션)에 사용되는 공간의 양을 선언하기 위해 최소 높이에 대한 특별한 처리를 가지고 있습니다.
아래 예에서는 높이를 128dp (사양에 정의 된대로 56dp + 72dp)로 설정하지만 android:minHeight
표준 actionBarSize
(일반적으로 56dp)으로 유지합니다 . 즉, 버튼과 작업이 상위 56dp에 수직으로 배치되도록 제한됩니다. 그런 다음을 사용 android:gravity
하여 하단에 제목을 배치 할 수 있습니다 .
<Toolbar
android:id="@+id/toolbar"
android:layout_height="128dp"
android:layout_width="match_parent"
android:minHeight="?android:attr/actionBarSize"
android:background="?android:attr/colorPrimary"
android:gravity="bottom" />
AppCompat를 사용 android.support.v7.widget.Toolbar
하는 경우 대신 사용할 선언을 변경하고 해당 속성을 사용하십시오.
귀하의 질문, 답변 및 네이티브 및 supportlibrary의 도구 모음 구현에 대해 감사드립니다. :)
그리고 우리는 더 많이 플레이 할 수 있습니다. 런타임에 Height 및 MinimalHeight를 사용할 수 있습니다.
높이는 ToolBar 높이이며 간단하고 모든 신체가 이해하며 중력은 그 높이에 따라 작용합니다.
minimalHeight는 더 까다 롭고 최소 56dp가 아니어야합니다. 이 minHeight는 menuItem의 줄을 배치하는 데 사용됩니다. 이 줄은 minHeight의 중간에 있습니다.
따라서이 코드를 활동에 추가하여 차이점을 직접 확인할 수 있습니다. :)
Runnable toolBarAnimator=new Runnable() {
@Override
public void run() {
if(postICS){
// toolbar.setTranslationX(iteration);
// toolbar.setElevation(iteration);
toolbar.setMinimumHeight(iteration * 5);
toolbar.getLayoutParams().height++;
}
uiThreadHanlder.postDelayed(this,16);
iteration++;
if(iteration>150)iteration=0;
}
};
Handler uiThreadHanlder=new Handler();
int iteration=0;
@Override
protected void onResume() {
super.onResume();
//launch the animation
uiThreadHanlder.postDelayed(toolBarAnimator, 1000);
}
@Override
protected void onPause() {
super.onPause();
//stop the animation
uiThreadHanlder.removeCallbacks(toolBarAnimator);
}
툴바는 다음과 같습니다.
toolbar = (툴바) findViewById (R.id.toolbar);
이렇게하면 다음을 얻을 수 있습니다.
그러나 애니메이션을 계속 종료하면 다음을 얻을 수 있습니다.
이것이 툴바가 내용에 따라 높이를 조정하기 때문에 android : layout_height를 wrap_content로 설정하는 것이 대부분의 경우 좋은 옵션입니다. (그리고 런타임에 내용을 변경할 수 있습니다.)
이것은 또한 런타임에 툴바 크기를 변경하는 방법입니다.
액션 바에서 놀라운 작업을 해주신 Chris Banes에게 감사드립니다.
'program story' 카테고리의 다른 글
PowerShell에서 파일을 한 줄씩 스트림으로 처리하는 방법 (0) | 2020.09.12 |
---|---|
C #에서 epoch 시간을 어떻게 얻습니까? (0) | 2020.09.12 |
Oracle 저장 프로 시저에서 "AS"와 "IS"의 차이점은 무엇입니까? (0) | 2020.09.12 |
Google Play 스토어에 내 Android 앱이 내 기기와 호환되지 않는다고 표시되는 이유는 무엇입니까? (0) | 2020.09.12 |
버그 수정을 스크럼 프로세스에 맞추는 가장 좋은 방법은 무엇입니까? (0) | 2020.09.12 |