Google의 직원은 어떤 이유로 인해 이러한 광고가 운영되지 않아야한다고 결정했습니다. 아래에서 확인할 수 있습니다.
ToolbarWidgetWrapper.java
@Override
public void setHomeButtonEnabled(boolean enable) {
// Ignore
}
ToolbarActionBar.java
@Override
public void setHomeButtonEnabled(boolean enabled) {
// If the nav button on a Toolbar is present, it's enabled. No-op.
}
차이를 액션 바 툴바를 매핑하는 데 사용되는 ToolbarWidgetWrapper는 '홈으로 도구 모음에서 탐색 아이콘을 취급 것처럼 그것은의를 보인다 '위로 표시기'. 따라서 해당 부분 만 클릭 할 수 있습니다. 툴바에서 설정할 수있는 새로운 로고를 클릭 할 수 없습니다. 그들은 심지어 시야를 드러내지 않습니다. private
롤스 - 눈. 이 기능은 '업으로 홈'을 사용하지 않거나 다음 당신은 단순히 당신의 android:actionBarStyle
함께 android:displayOptions="homeAsUp"
을와의 android:homeAsUpIndicator
속성을 설정할 수 있습니다 홈 당김으로 최대 당김을 결합하고자하는 경우
그래서 주위의 첫 작품이다 .
<style name="AppBaseTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/ActionBar</item>
</style>
<style name="ActionBar" parent="@android:style/Widget.Material.Light.ActionBar.Solid">
<item name="android:background">@color/action_bar_bg</item>
<item name="android:displayOptions">homeAsUp</item>
<item name="android:homeAsUpIndicator">@drawable/app_logo</item>
</style>
분명히 동일한 일은 코드로 수행 할 수 있습니다.
getActionBar().setHomeAsUpIndicator(R.drawable.app_logo);
getActionBar().setDisplayHomeAsUpEnabled(true);
하지만 이는 실제로 활동이로드되는 동안에는 나타나지 않음을 의미합니다. 테마 옵션을 사용하는 것이 가장 좋습니다.
3 번째 옵션은 새로운 툴바보기의 탐색 버튼을 스타일링하는 것입니다. 어느 android:navigationButtonStyle
를 사용하지만, 그들은 그것을 공개하지 않았다고 생각합니다. 저는 이것이 geninue 실수라고 생각합니다. 그러나 이것은 우리 모두가 ActionBar로 가지고 있던 원래의 문제들과 매우 흡사합니다.
그래서 해결할 수 있습니다. 이제 android:toolbarStyle
에 android:navigationIcon
을 설정해 보겠습니다. 아니. 좋아요. android:actionBarStyle
및 android:actionBarTheme
을 사용하여 생각할 수있는 다른 모든 대안을 시도해보십시오. 아니. NavIcon이 기본 ActionBar/Activity/Toolbar 엉망으로 덮어 쓰여지고 있기 때문에 기대됩니다. 나는 주변 어디에서나 일할 수있는 방법을 찾으려고 귀찮아한다.
마지막으로 가장 유연한 옵션을 선택하도록합니다. 이전 홈 버튼을 버리고 이전 사용자 정의 탐색 기능을 구현하여 자체 홈 버튼을 사용하십시오. 즉, 이미 사용자 정의 탐색을 사용하는 경우 탐색을이 경로와 결합해야합니다.
값 -v21/스타일.XML
<style name="AppBaseTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/ActionBar</item>
</style>
<style name="ActionBar" parent="@android:style/Widget.Material.Light.ActionBar.Solid">
<item name="android:background">@color/action_bar_bg</item>
<item name="android:displayOptions">showCustom</item>
<item name="android:customNavigationLayout">@layout/nav_layout</item>
</style>
레이아웃-V21은/nav_layout.xml 액티비티/BaseActivity 클래스에서
<?xml version="1.0" encoding="utf-8"?>
<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:layout_marginEnd="8dp"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:adjustViewBounds="true"
android:background="?android:attr/actionBarItemBackground"
android:contentDescription="@string/ab_home_description"
android:src="@drawable/app_logo"
android:scaleType="fitCenter"
/>
는 다음을 추가합니다. 그리고 이것은 홈 버튼을 가짜로 만들 것입니다.
@Override
public boolean onPrepareOptionsMenu(final Menu menu)
{
prepareOptionsMenuLollipop(menu);
return super.onPrepareOptionsMenu(menu);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void prepareOptionsMenuLollipop(Menu menu)
{
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
final MenuItem homeItem = menu.add(Menu.NONE, android.R.id.home,
Menu.NONE, R.string.ab_home_description);
homeItem.setVisible(false);
View homeView = getActionBar().getCustomView().findViewById(android.R.id.home);
homeView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v)
{
getWindow().getCallback().onMenuItemSelected(Window.FEATURE_OPTIONS_PANEL, homeItem);
}
});
}
}
표준 ActionBar 또는 툴바를 작업 표시 줄로 사용하고 있습니까? – dhuma1981
표준 ActionBar – TommyNecessary
홈 버튼에서 어떤 기능을 기대합니까? 위로 단추 또는 서랍 토글로 작동하려면? 귀하가 사용하고있는 몇 가지 코드와 주제를 게시하십시오. – Simas