[英]How to stop toolbar title shrink and grow when using CoordinatorLayout
我想要類似於我的工具欄標題的行為,如下圖所示。
如您所見,它的標題完全滾動時會消失並完全消失。 向上滾動時,工具欄標題就會出現。 這是我的應用程序工具欄標題的工作方式。
如您所見,我的工具欄標題沒有消失。 如果可能的話,我想使標題淡出而在向下滾動時甚至不向下移動。 這是我的源代碼。
布局文件
<android.support.design.widget.CoordinatorLayout
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="match_parent"
android:background="@color/main_background_color">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsingToolbarLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/camera_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:scaleType="centerInside"
android:src="@drawable/customer_registration_toolbar_image"
android:adjustViewBounds="true"
app:layout_collapseMode="parallax" />
<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/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- All scroll able contain here -->
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
活動
public class CustomerRegistrationActivity extends AppCompatActivity {
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_customer_registration);
toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Customer Registration");
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
}
請指出我需要做些什么才能得到我描述的行為。
感謝所有的答案。 通過添加expandedTitleTextAppearance
屬性,實現了我想要的功能。
首先將app:expandedTitleTextAppearance="@style/TransparentText"
到CollapsingToolbarLayout
然后在如下所示的樣式文件夾中創建TransparentText文件。
<style name="TransparentText">
<item name="android:textColor">#00000000</item>
<item name="android:textSize">0sp</item>
</style>
結果
您可以在xml本身中進行指定,如下所示,
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/app_bar_height"
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">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_gravity="center_horizontal"
android:background="?attr/colorPrimary"
android:gravity="center"
app:layout_collapseMode="pin"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@string/title"
app:titleTextColor="@color/white" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
並在您的嵌套滾動視圖中進行設置
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:behavior_overlapTop="@dimen/some_value_to_place_title_under_button" // eg 50 dp, 70dp
app:layout_behavior="@string/appbar_scrolling_view_behavior">
您應該在工具欄本身中指定標題,並刪除用於設置標題的Java代碼
app:title="@string/title"
並且您還需要將名稱空間導入布局的根視圖
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
或在Java代碼中設置標題
getSupportActionBar().setTitle("Title");
我認為下面提到的代碼可以解決您的問題。
collapsingToolbarLayout.setExpandedTitleColor(Color.parseColor("#00FFFFFF"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.