user2005049 user2005049 - 5 months ago 47
Android Question

Android: Custom action bar,How to use entire width?

Here is an image of my custom action bar:

enter image description here

I want to use the entire width, I have search the internet for a solution but nothing wotrked for me.

Here is my action bar .xml:



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

<ImageView
android:layout_width="50dp"
android:layout_height="match_parent"
android:id="@+id/invActionBarSave"
android:src="@drawable/ic_ok_b"
android:nestedScrollingEnabled="true"
android:layout_alignParentRight="true"
android:background="#ffb0afaf"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp" />

<ImageView
android:layout_width="50dp"
android:layout_height="match_parent"
android:id="@+id/invActionBarDelete"
android:src="@drawable/ic_trash"
android:nestedScrollingEnabled="true"
android:layout_toLeftOf="@+id/invActionBarSave"
android:layout_marginRight="5dp"
android:background="#ffb0afaf"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp" />

<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:singleLine="true"
android:text="אלסאדק אחמד אבו האני"
android:textSize="18dp"
android:textColor="#ff000000"
android:id="@+id/invActionBarTitle"
android:gravity="center|right"
android:layout_toLeftOf="@+id/invActionBarDelete"
android:layout_toRightOf="@+id/invActionBarHome"
android:layout_marginRight="20dp"
android:layout_marginLeft="10dp" />

<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/invActionBarHome"
android:src="@drawable/ic_back_b"
android:nestedScrollingEnabled="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="false"
android:paddingLeft="10dp" />

<ProgressBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminateOnly="false"
style="@style/ProgressBar.Horizontal"
android:indeterminate="true"
android:id="@+id/invActionBarProgressBar"
android:visibility="gone"
android:layout_below="@+id/invActionBarDelete"
android:paddingLeft="10dp" />

</RelativeLayout>





And here is my java code:

getSupportActionBar().setDisplayShowHomeEnabled(false);
getSupportActionBar().setDisplayShowTitleEnabled(false);
LayoutInflater mInflater = LayoutInflater.from(this);
//View mCustomView = mInflater.inflate(R.layout.actionbar_invoice, null);
getSupportActionBar().setCustomView(R.layout.actionbar_invoice);
getSupportActionBar().setDisplayShowCustomEnabled(true);
setContentView(R.layout.cstmrinvoice);
getWindow().
getDecorView().
setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);


[EDIT]

Here is a simple one:

enter image description here

And here is the .xml:



<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:contentInsetEnd="0dp"
android:contentInsetStart="0dp">

<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Small Text"
android:id="@+id/textView6"
android:background="#ffff0000"
android:textColor="#ffffffff" />
</RelativeLayout>





The same result, there still a space at right of the action bar !

Thank you

Answer

Read this link1, link2 and set the contentInsets to 0dp like done below:

View mCustomView = mInflater.inflate(R.layout.actionbar_invoice, null);
getSupportActionBar().setCustomView(mCustomView);
Toolbar toolbar=(Toolbar)mCustomView.getParent();
toolbar.setContentInsetsAbsolute(0,0);

If you are using custom Toolbar instead of ActionBar then use below code:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="@dimen/action_bar_height"
    android:background="?attr/colorPrimary"
    android:contentInsetStart="0dp"//see this
    android:contentInsetLeft="0dp"//see this
    app:contentInsetLeft="0dp"
    app:contentInsetStart="0dp"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

I Hope this might help you.

Comments