0

I know this question has been asked before here and I've looked at the solutions. I want to narrow the space between arrow and title, the below image has too much space.

enter image description here

The most popular solution is to put in app:contentInsetStartWithNavigation="0dp" in my toolbar XML code like:

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:theme="@style/CustomToolbarStyle"
            app:layout_collapseMode="pin"
            app:contentInsetStartWithNavigation="0dp"/>

When I do that though and run my app I get the error message:

Error:(100) No resource identifier found for attribute 'contentInsetStartWithNavigation' in package 'com.packagename'

Googling that error led me to trying solutions instead like adding to my XML:

            android:contentInsetStart="0dp"
            android:contentInsetLeft="0dp"
            android:contentInsetRight="0dp"
            android:contentInsetEnd="0dp"
            app:contentInsetLeft="0dp"
            app:contentInsetStart="0dp"
            app:contentInsetRight="0dp"
            app:contentInsetEnd="0dp"

But when I load my app, the spacing between arrow and title does not change, there's still a big space.

I'm using CoordinatorLayout in my XML but don't see why that should make any difference.

Also, in my XML when I replace

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"

with

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/lib/com.mypackage.name"

as per this solution: error: No resource identifier found for attribute 'adSize' in package 'com.google.example' main.xml

I still get the error.

Here's the java code for my activity, in onCreate:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

//Show the arrow to go back
ActionBar actionbar = getSupportActionBar();
actionbar.setDisplayHomeAsUpEnabled(true);

//show the App title
actionbar.setTitle("Pop");

And here is my xml layout for the activity:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.example.chris.populisto.NewContact">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="350dp"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleTextAppearance="@android:color/transparent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:titleEnabled="false"

            >

            <LinearLayout
                android:id="@+id/holder"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="9.5"
                android:orientation="vertical"
                android:paddingLeft="16dp"
                android:paddingRight="16dp"
                app:layout_collapseMode="parallax">


                <TextView
                    android:id="@+id/textViewInvisible"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    android:background="@drawable/textboxes_for_contact"
                    android:visibility="invisible" />

                <AutoCompleteTextView
                    android:id="@+id/textViewCategory"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/textboxes_for_contact"
                    android:hint="Category" />

                <EditText
                    android:id="@+id/textViewName"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/textboxes_for_contact"
                    android:hint="Name" />

                <EditText
                    android:id="@+id/textViewPhone"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/textboxes_for_contact"
                    android:hint="Phone" />

                <AutoCompleteTextView
                    android:id="@+id/textViewAddress"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/textboxes_for_contact"
                    android:hint="Address" />

                <EditText
                    android:id="@+id/textViewComment"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/textboxes_for_contact"
                    android:hint="Comment" />

                <TextView
                    android:id="@+id/textViewInvisible2"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/textboxes_for_contact"
                    android:visibility="invisible" />


            </LinearLayout>

            <!--This is for bar pinned to top of screen-->
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:theme="@style/CustomToolbarStyle"
                app:layout_collapseMode="pin"
/>



        </android.support.design.widget.CollapsingToolbarLayout>


     <fragment
         android:name="com.example.chris.populisto.ButtonSharingFragment"
         android:id = "@+id/myFragment"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
        />

    </android.support.design.widget.AppBarLayout>


    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    <!--This is positioned in the toolbar, above-->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:orientation="vertical">

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"

            >

            <Button
                android:id="@+id/cancel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:text="CANCEL" />

            <Button
                android:id="@+id/save"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toLeftOf="@id/cancel"
                android:layout_marginRight="1dp"
                android:text="SAVE" />

        </RelativeLayout>
    </LinearLayout>

</android.support.design.widget.CoordinatorLayout>

Here are my gradle dependencies:

dependencies {
    //this is the volley library
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    // compile 'com.android.support:appcompat-v7:+'

    compile 'com.android.volley:volley:1.0.0'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.googlecode.libphonenumber:libphonenumber:8.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.google.code.gson:gson:2.8.1'
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:recyclerview-v7:23.0.0-alpha1'
    compile 'com.google.android.gms:play-services-places:15.0.1'
    compile ('com.android.support:support-v4:23.4.0'){
        force = true;
    }


}
CHarris
  • 2,693
  • 8
  • 45
  • 71

2 Answers2

1

You can add a customView to your toolbar:

Toolbar toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar);
View logo = getLayoutInflater().inflate(R.layout.toolbar_custom_view_layout, null);
toolbar.addView(logo);

And the xml toolbar_custom_view_layout can be something like this:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/back_arrow_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/back_arrow"
        android:layout_gravity="center_vertical"/>

    <TextView
        android:id="@+id/title_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/title"
        android:layout_gravity="center_vertical"
        android:marginStart="12dp"/>

</LinearLayout>
SamyB
  • 235
  • 1
  • 9
1

Try this

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="350dp"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleTextAppearance="@android:color/transparent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:titleEnabled="false"

            >

            <LinearLayout
                android:id="@+id/holder"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="9.5"
                android:orientation="vertical"
                android:paddingLeft="16dp"
                android:paddingRight="16dp"
                app:layout_collapseMode="parallax">


                <TextView
                    android:id="@+id/textViewInvisible"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    android:visibility="invisible" />

                <AutoCompleteTextView
                    android:id="@+id/textViewCategory"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:hint="Category" />

                <EditText
                    android:id="@+id/textViewName"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:hint="Name" />

                <EditText
                    android:id="@+id/textViewPhone"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:hint="Phone" />

                <AutoCompleteTextView
                    android:id="@+id/textViewAddress"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:hint="Address" />

                <EditText
                    android:id="@+id/textViewComment"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:hint="Comment" />

                <TextView
                    android:id="@+id/textViewInvisible2"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:visibility="invisible" />


            </LinearLayout>

            <!--This is for bar pinned to top of screen-->
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?actionBarSize"
                app:layout_collapseMode="pin"
                app:contentInsetEnd="0dp"
                app:contentInsetLeft="0dp"
                app:contentInsetRight="0dp"
                app:contentInsetStart="0dp"
                app:contentInsetStartWithNavigation="0dp"
                />



        </android.support.design.widget.CollapsingToolbarLayout>



    </android.support.design.widget.AppBarLayout>


    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    <!--This is positioned in the toolbar, above-->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:orientation="vertical">

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"

            >

            <Button
                android:id="@+id/cancel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:text="CANCEL" />

            <Button
                android:id="@+id/save"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toLeftOf="@id/cancel"
                android:layout_marginRight="1dp"
                android:text="SAVE" />

        </RelativeLayout>
    </LinearLayout>

</android.support.design.widget.CoordinatorLayout>

OUTPUTS USING

app:contentInsetEnd="0dp"
app:contentInsetLeft="0dp"
app:contentInsetRight="0dp"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp"

enter image description here

OUTPUTS WITHOUT USING

app:contentInsetEnd="0dp"
app:contentInsetLeft="0dp"
app:contentInsetRight="0dp"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp"

enter image description here

EDIT

Please update your dependencies

implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:design:27.1.1'
AskNilesh
  • 67,701
  • 16
  • 123
  • 163
  • Thanks but still getting 'No resource identifier for attribute contentInsetStartWithNavigation' error'. – CHarris Jun 26 '18 at 09:23
  • @CHarris can you share dependency of your gradle with question because the same code is working fine for me – AskNilesh Jun 26 '18 at 09:25
  • There, added the gradle dependencies at end of question. – CHarris Jun 26 '18 at 09:32
  • tx got it working but contentInsetEnd had no effect how much I changed them, ended up accepting SamyBs answer as it works and good exercise to make it myself and understand what's going on. – CHarris Jun 26 '18 at 13:41