Sudarshan
Sudarshan

Reputation: 1036

Hiding Scrolling activity title in android studio

I have created a Scrolling activity.

Want to hide Activity Title

I want to hide this activity title (Banglalink Latest Offers).

But

Show Activity Title

I want to show activity title at this stage (Banglalink Latest Offers).

Is it possible to do? If yes, how?

Upvotes: 2

Views: 5304

Answers (8)

misry
misry

Reputation: 351

you can use supportActionBar and change title with "" (string null)

    setSupportActionBar(findViewById(R.id.toolbar))
    findViewById<CollapsingToolbarLayout>(R.id.toolbar_layout).title = title
    
    supportActionBar!!.title=""
    supportActionBar!!.setDisplayHomeAsUpEnabled(true)

or you can change in findViewById

findViewById<CollapsingToolbarLayout>(R.id.toolbar_layout).title = title

Upvotes: 0

Ahmed Ashour
Ahmed Ashour

Reputation: 580

Simply add this line to CollapsingToolbarLayout in your xml file:

app:titleEnabled="false"

Upvotes: 2

Touf
Touf

Reputation: 106

A bit late but I think this might help someone looking for a solution for this, you can simply set the text color to transparent. Just add the below style to your styles.xml:

    <style name="ToolBarTheme">
        <item name="android:textColor">@android:color/transparent</item>
    </style>

and add the following attribute to your CollapsingToolbarLayout:

app:expandedTitleTextAppearance="@style/ToolBarTheme"

Upvotes: 2

Sudarshan
Sudarshan

Reputation: 1036

Calling this method from onCreate()

initCollapsingToolbar();

Defining the method

private void initCollapsingToolbar() {
    final CollapsingToolbarLayout collapsingToolbar =
            (CollapsingToolbarLayout) findViewById(R.id.toolbar_layout);
    collapsingToolbar.setTitle(" ");
    AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.app_bar);
    appBarLayout.setExpanded(true);

    // hiding & showing the title when toolbar expanded & collapsed
    appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
        boolean isShow = false;
        int scrollRange = -1;

        @Override
        public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
            if (scrollRange == -1) {
                scrollRange = appBarLayout.getTotalScrollRange();
            }
            if (scrollRange + verticalOffset == 0) {
                collapsingToolbar.setTitle("Your app title");
                isShow = true;
            } else if (isShow) {
                collapsingToolbar.setTitle(" ");
                isShow = false;
            }
        }
    });
}

Upvotes: -1

Fahry Mohammed
Fahry Mohammed

Reputation: 659

You have to remove the line android:theme="@style/AppTheme.AppBarOverlay"in your XML. Once you removed the title will go to background. So you able hide title of the activity. as an example, you can place a placeholder to hide it.

<?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/app_bar"
    android:layout_width="match_parent"
    android:layout_height="220dp"
    android:fitsSystemWindows="true"
    >
   <!--android:theme="@style/AppTheme.AppBarOverlay"-->

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:toolbarId="@+id/toolbar">

        <android.support.constraint.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop"
                app:layout_collapseMode="pin"
                app:srcCompat="@drawable/place_holder" />

            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginLeft="6dp"
                android:layout_marginStart="6dp"
                android:layout_marginTop="8dp"
                android:src="@mipmap/next"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

        </android.support.constraint.ConstraintLayout>

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/AppTheme.PopupOverlay"/>
    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

<include layout="@layout/content_display_shop" />
</android.support.design.widget.CoordinatorLayout>

Upvotes: 0

Pejman
Pejman

Reputation: 2636

This is working for me:

CollapsingToolbarLayout toolbarLayout = (CollapsingToolbarLayout) 
                                findViewById(R.id.toolbar_layout);
toolbarLayout.setTitle(" ");

Upvotes: 0

Shubham Rawat
Shubham Rawat

Reputation: 36

<resources>
    <dimen name="app_bar_height">180dp</dimen>
    <dimen name="fab_margin">16dp</dimen>
    <dimen name="text_margin">16dp</dimen>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
    <dimen name="appbar_padding_top">8dp</dimen>
</resources>

This must be your dimens.xml file. If you reduce the app_bar_height to 120dp or close... the text will be invisible. I dont know how to bring it back after collapse

Upvotes: 0

DEzra
DEzra

Reputation: 3038

Your best bet it to convert to a normal activity (with a scrollview as a child), start with the actionbar hidden (using the hide() call below (put it inside onCreate()).

Then put the coloured backgroiund at top of screen inside scrollview. Finally, you can programmatically toggle between hiding your title (and actionbar), but showing your header background (or vice versa) when needed by adding a horizontal scroll listener/observer.

The listener will toggle the actionbar and header view depending on how far the user has scrolled down.

E.g:

Add observer inside onStart():

 hsv.getViewTreeObserver().addOnScrollChangedListener(
      new ViewTreeObserver.OnScrollChangedListener() 
      {  @Override public void onScrollChanged() 
         {
            Log.i(TAG,"scroll:"+hsv.getScrollX());}});
            // todo adjust scrollx value to decide on hide or show call:
            if (hsv.getScrollX() > 100)             
                getActionBar().show();
                mHeaderLayoutView.setVisibility(View.GONE);
            else 
                getActionBar().hide();
                mHeaderLayoutView.setVisibily(View.VISIBLE)

            ...

Note: hsv is a HorizontalScrollView works.

Note, if your are using the support libraries (E.g. you activity class extends AppCompatActivity), the code would change to:

getSupportActionBar().hide();

Im not sure if the getScrollX is in pixels or dp (job for you to research).

Hope this helps!

Upvotes: 0

Related Questions