Android : 작업 표시 줄의 사용자 정의 레이아웃에서 왼쪽 여백 제거 / 값

사용자 지정 작업 표시 줄보기를 사용하고 있으며 아래 스크린 샷에서 볼 수 있듯이 작업 표시 줄에 빈 회색 공간이 있습니다. 제거하고 싶습니다.

여기에 이미지 설명을 입력하십시오

내가 무슨 짓을 한:

입술 / 값 -v11 / styles.xml

<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:actionBarStyle">@style/ActionBarStyle</item>
        <item name="actionBarStyle">@style/ActionBarStyle</item>
</style>

res / values ​​/ my_custom_actionbar.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
        <item name="android:height">60dp</item>
    </style>
</resources>

명백한

<uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="19" />

<application
            android:icon="@drawable/ic_launcher"
            android:label="@string/AppName"
            android:theme="@style/AppBaseTheme" >
    <!-- activities... etc -->
</application>

주요 활동

public void onCreate(Bundle bundle) {
    super.onCreate(bundle);

    ActionBar actionbar = getSupportActionBar();

    actionbar.setDefaultDisplayHomeAsUpEnabled(false);
    actionbar.setDisplayHomeAsUpEnabled(false);
    actionbar.setDisplayShowCustomEnabled(true);
    actionbar.setDisplayShowHomeEnabled(false);
    actionbar.setDisplayShowTitleEnabled(false);
    actionbar.setDisplayUseLogoEnabled(false);
    actionbar.setHomeButtonEnabled(false);

    // Add the custom layout
    View view = LayoutInflater.from(this).inflate(R.layout.actionbar, null, false);
    actionbar.setCustomView(view);
}

최근 게시물을 찾았습니다. 최신 릴리스에 문제가 있음을 나타냅니다. 또한 ADT 및 SDK를 Android 5로 업데이트했습니다.

부모를 채우지 않는 Android ActionBar의 사용자 정의보기

어떻게해야할지 모르겠습니다.

편집 (부분 솔루션) :

Android <= API 10에서 작동하지 않습니다.

Android Lollipop, AppCompat ActionBar 사용자 정의보기가 전체 화면 너비를 차지하지 않습니다

내가 바꾼 내용 :

최신 SDK 버전을 사용하십시오.

<uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="21" />

추가 toolbarStyle:

<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:actionBarStyle">@style/ActionBarStyle</item>
        <item name="actionBarStyle">@style/ActionBarStyle</item>

        <item name="android:toolbarStyle">@style/ToolbarStyle</item>
        <item name="toolbarStyle">@style/ToolbarStyle</item>
</style>

<style name="ToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
    <item name="contentInsetStart">0dp</item>
    <item name="android:contentInsetStart">0dp</item>
</style>


답변

Toolbarvia XML을 추가하는 경우 XML 속성을 추가하여 컨텐츠 삽입을 제거 할 수 있습니다.

<android.support.v7.widget.Toolbar
    xmlns:app="schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/primaryColor"
    android:contentInsetLeft="0dp"
    android:contentInsetStart="0dp"
    app:contentInsetLeft="0dp"
    app:contentInsetStart="0dp"
    android:contentInsetRight="0dp"
    android:contentInsetEnd="0dp"
    app:contentInsetRight="0dp"
    app:contentInsetEnd="0dp" />

답변

이 시도:

    ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setDisplayShowTitleEnabled(false);
    View customView = getLayoutInflater().inflate(R.layout.main_action_bar, null);
    actionBar.setCustomView(customView);
    Toolbar parent =(Toolbar) customView.getParent();
    parent.setPadding(0,0,0,0);//for tab otherwise give space in tab
    parent.setContentInsetsAbsolute(0,0);

나는이 코드를 내 프로젝트에서 사용했다.


답변

왼쪽 삽입은 툴바에 의해 발생 contentInsetStart하며 기본적으로 16dp입니다.

키라 인에 맞게 이것을 변경하십시오.

지원 라이브러리 v24.0.0 업데이트 :

머티리얼 디자인 사양과 일치시키기 위해 contentInsetStartWithNavigation기본적으로 16dp 인 추가 속성 이 있습니다. 탐색 아이콘이있는 경우이를 변경하십시오.

이것은 디자인 라이브러리 버전 24에 도입 된 새로운 머티리얼 디자인 사양의 일부인 것으로 나타났습니다.

https://material.google.com/patterns/navigation.html

그러나 툴바 위젯에 다음 속성을 추가하여 추가 공간을 제거 할 수 있습니다.

app:contentInsetStartWithNavigation="0dp"

전 :

후 :


답변

코드에 따라 toolbarStyle을 변경하는 다른 해상도 (reference appcompat-v7)를 찾았습니다.

<item name="toolbarStyle">@style/Widget.Toolbar</item>


<style name="Widget.Toolbar" parent="@style/Widget.AppCompat.Toolbar">
<item name="contentInsetStart">0dp</item>
</style>

답변

<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
android:paddingLeft="0dp">

이것으로 충분해야합니다.


답변

styles.xml을 수정하십시오.

<!-- ActionBar styles -->
    <style name="MyActionBar" parent="Widget.AppCompat.ActionBar">
        <item name="contentInsetStart">0dp</item>
        <item name="contentInsetEnd">0dp</item>
    </style>

답변

레이아웃에 툴바를 추가하는 대신 아래와 같이 사용자 정의보기를 설정할 수 있습니다.

Toolbar parent = (Toolbar) customView.getParent();
parent.setContentInsetsAbsolute(0,0);