164

私は試してみましたがsetExpandedTitleColorsetCollapsedTitleColor運がありませんでした。私が探していることを実行する組み込みメソッドも表示されません。

CollapsingToolbarLayout が完全に折りたたまれている場合にのみタイトルを表示したいのですが、それ以外の場合は非表示にする必要があります。

ヒントはありますか?

4

14 に答える 14

49

ドロハニのソリューションを試してみましたが、フェードアウトが原因で気に入りませんでした。このソリューションでは、退色を完全に取り除きます。

トリックは、textSize が 0.1sp または 0sp (これは SDK < 19 でクラッシュします) に等しく、textColor が透明な新しいスタイルを作成することです。

SDK < 19 の場合

<style name="CollapsingToolbarLayoutExpandedTextStyle" parent="AppTheme">
    <item name="android:textColor">@android:color/transparent</item>
    <item name="android:textSize">0.1sp</item>
</style>

SDK >= 19 の場合

<style name="CollapsingToolbarLayoutExpandedTextStyle" parent="AppTheme">
    <item name="android:textColor">@android:color/transparent</item>
    <item name="android:textSize">0sp</item>
</style>

次に、レイアウトの CollapsingToolbarLayout に適用します。

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:expandedTitleTextAppearance="@style/CollapsingToolbarLayoutExpandedTextStyle"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">
于 2015-09-11T17:26:08.133 に答える
24

もっと簡単な答えがあります:

final CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.toolbar_layout);

collapsingToolbarLayout.setTitle("Your Title");
collapsingToolbarLayout.setExpandedTitleColor(getResources().getColor(R.color.transperent)); // transperent color = #00000000
collapsingToolbarLayout.setCollapsedTitleTextColor(Color.rgb(0, 0, 0)); //Color of your title

ハッピーコーディング!

于 2016-02-11T11:52:24.310 に答える
24

このコードは私にとってはうまくいきます:背景色が異なる場合は白に置き換え、タイトルが表示されないため、 color.parse color を使用してください

collapsingToolbarLayout.setExpandedTitleColor(Color.parseColor("#00FFFFFF"));

または、透明に使用できます collapsingToolbarLayout.setExpandedTitleColor(Color.TRANSPARENT);

于 2017-03-13T14:01:05.247 に答える
20

フェードテキストビューを正常に追加し、ツールバーにテキストビューを追加するだけで、appbar コールバックの verticalOffset に基づいてアルファを設定しました

mAppBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {

        @Override
        public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {

            mTitleTextView.setAlpha(Math.abs(verticalOffset / (float)
                    appBarLayout.getTotalScrollRange()));
        }
    });
于 2016-08-05T20:44:38.373 に答える
14

これもapi 23を使用した最も単純で実用的なソリューションです。

app:expandedTitleTextAppearance は TextAppearance を継承する必要があります。

したがって、styles.xml に次の行を追加します。

<style name="TransparentText" parent="@android:style/TextAppearance">
   <item name="android:textColor">#00000000</item>
</style>

次に、CollapsingToolbarLayout にこの行を追加します。

app:expandedTitleTextAppearance="@style/TransparentText"

それはすべての人々です!

于 2016-06-30T22:49:06.070 に答える
4

これが私の解決策です:

collapsingToolbar.setCollapsedTitleTextAppearance(R.style.personal_collapsed_title);
collapsingToolbar.setExpandedTitleTextAppearance(R.style.personal_expanded_title);

<style name="personal_collapsed_title">
     <item name="android:textSize">18sp</item>
     <item name="android:textColor">@color/black</item>
</style>

<style name="personal_expanded_title">
     <item name="android:textSize">0sp</item>
</style>
于 2016-07-23T06:54:44.823 に答える
2

これは私にとってはうまくいきます。

final Toolbar tool = (Toolbar)findViewById(R.id.toolbar);
CollapsingToolbarLayout c = (CollapsingToolbarLayout)findViewById(R.id.collapsing_toolbar);
AppBarLayout appbar = (AppBarLayout)findViewById(R.id.app_bar_layout);
tool.setTitle("");
setSupportActionBar(tool);
c.setTitleEnabled(false);

appbar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
    boolean isVisible = true;
    int scrollRange = -1;
    @Override
    public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
        if (scrollRange == -1) {
            scrollRange = appBarLayout.getTotalScrollRange();
        }
        if (scrollRange + verticalOffset == 0) {
           tool.setTitle("Title");
            isVisible = true;
        } else if(isVisible) {
            tool.setTitle("");
            isVisible = false;
        }
    }
});
于 2016-05-04T11:44:07.263 に答える