首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >collapsingToolbarLayout set标题仅在折叠时

问collapsingToolbarLayout set标题仅在折叠时
EN

Stack Overflow用户
提问于 2015-08-22 20:20:12
回答 4查看 17.4K关注 0票数 4

我正在尝试仅在折叠时设置collapsingToolbarLayout标题

为此,我设置了:

代码语言:javascript
复制
app:expandedTitleTextAppearance="@android:color/transparent"

它工作得很好。

但在4.2.2应用程序崩溃时出现以下日志

代码语言:javascript
复制
STACK_TRACE

java.lang.IllegalArgumentException: width and height must be > 0
    at android.graphics.Bitmap.createBitmap(Bitmap.java:687)
    at android.graphics.Bitmap.createBitmap(Bitmap.java:666)
    at android.graphics.Bitmap.createBitmap(Bitmap.java:633)
    at android.support.design.widget.CollapsingTextHelper.ensureExpandedTexture(CollapsingTextHelper.java:405)
    at android.support.design.widget.CollapsingTextHelper.setInterpolatedTextSize(CollapsingTextHelper.java:382)
    at android.support.design.widget.CollapsingTextHelper.calculateOffsets(CollapsingTextHelper.java:227)
    at android.support.design.widget.CollapsingTextHelper.setExpansionFraction(CollapsingTextHelper.java:203)
    at android.support.design.widget.CollapsingToolbarLayout$OffsetUpdateListener.onOffsetChanged(CollapsingToolbarLayout.java:754)
    at android.support.design.widget.AppBarLayout$Behavior.dispatchOffsetUpdates(AppBarLayout.java:851)
    at android.support.design.widget.AppBarLayout$Behavior.setAppBarTopBottomOffset(AppBarLayout.java:834)
    at android.support.design.widget.AppBarLayout$Behavior.scroll(AppBarLayout.java:793)
    at android.support.design.widget.AppBarLayout$Behavior.onNestedScroll(AppBarLayout.java:644)
    at android.support.design.widget.AppBarLayout$Behavior.onNestedScroll(AppBarLayout.java:583)
    at android.support.design.widget.CoordinatorLayout.onNestedScroll(CoordinatorLayout.java:1428)
    at android.support.v4.view.eh.a(ViewParentCompat.java:97)
    at android.support.v4.view.ec.a(ViewParentCompat.java:330)
    at android.support.v4.view.bk.a(NestedScrollingChildHelper.java:162)
    at android.support.v7.widget.RecyclerView.dispatchNestedScroll(RecyclerView.java:8306)
    at android.support.v7.widget.RecyclerView.scrollByInternal(RecyclerView.java:1387)
    at android.support.v7.widget.RecyclerView.onTouchEvent(RecyclerView.java:2209)

请建议我实现它的正确方法。

或

是否有任何Listener来检测collapsingToolbarLayout是否折叠,以便我可以隐藏/取消隐藏ToolBar标题...

或

是否可以将collapsingToolbarLayout标题设置为与我想要的另一个视图对齐...

EN

回答 4

Stack Overflow用户

发布于 2016-02-11 19:49:12

最终的CollapsingToolbarLayout如下:

代码语言:javascript
复制
collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.toolbar_layout);
collapsingToolbarLayout.setTitle("Create Delivery Personnel");
collapsingToolbarLayout.setExpandedTitleColor(getResources().getColor(R.color.transperent));
collapsingToolbarLayout.setCollapsedTitleTextColor(Color.rgb(0, 0, 0));
票数 16
EN

Stack Overflow用户

发布于 2016-10-04 12:56:30

您可以添加侦听器到AppBar,您可以侦听是否折叠。

代码语言:javascript
复制
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;
        }
    }
});
票数 6
EN

Stack Overflow用户

发布于 2015-12-12 02:00:08

今天我发现了同样的问题。我最终通过在xml上定义它来解决这个问题

代码语言:javascript
复制
app:expandedTitleTextAppearance="@android:color/transparent"

此外,还可以通过编程方式检查pre-kitkat

代码语言:javascript
复制
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
    mCollapsingToolbar.setExpandedTitleTextAppearance(R.style.TransparentText)
};

TransparentText样式的位置

代码语言:javascript
复制
<style name="TransparentText" parent="@android:style/TextAppearance">
       <item name="android:textColor">#00000000</item>
</style>

我知道这太晚了,但我希望这能帮助其他人:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32156044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档