Google 디자인 앱 바 가이드 라인 에서 확장 된 높이 앱 바를 보았습니다 . 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
하는 경우 대신 사용할 선언을 변경하고 속성을 사용하십시오.
@dimen/action_bar_size_x2
조정하고 휴대 전화에서는 112dp, 태블릿에서는 128dp 사용
android:paddingBottom
buttonGravity
로 설정 되면 이상한 간격이 발생 합니다 bottom
. titleMarginBottom
속성은 아니, 여기에 더 나은 옵션 것 같아?
귀하의 질문, 답변 및 네이티브 및 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에게 감사드립니다.
boolean postICS = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
layout_height
하는 방법이 있다면 여기에 몬순이 설명하는 해결 방법도 해결 방법이 아니지만 올바른 방법 일 것으로 예상합니다. code.google.com/p/android/issues/detail?id=77874