gpt4 book ai didi

android - 如何将 transitionName 设置为工具栏标题?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:59:55 28 4
gpt4 key购买 nike

我正在尝试在工具栏标题中添加带有“makeSceneTransitionAnimation”的动画,但由于它是私有(private)的,我无法在其上设置“transitionName”。

如果有人知道如何解决这个问题或知道其他方法帮助我。

最佳答案

自定义标题TextView

因为您使用的是工具栏,所以您可以考虑直接创建自定义标题 TextView 的可能性:

禁用默认的 ActionBar 标题:

@Override
public void onCreate(Bundle savedInstanceState) {
// ...
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// Either by calling
getSupportActionBar().setTitle(null);
// Or
toolbar.setTitle(null);
// Or
getSupportActionBar().setDisplayShowTitleEnabled(false);
// ...
}

还有很多其他方法可以从 XML 中禁用默认标题,一些在这个问题中讨论:Remove title in Toolbar in appcompat-v7 .

然后在Activity的布局文件中,在Toolbar里面添加一个自定义的标题TextView:

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:theme="@style/AppTheme"
app:popupTheme="@style/AppTheme.PopupOverlay">

<TextView
android:id="@+id/custom_title"
android:text="@string/activity_title"
android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
android:transitionName="@string/title_transition_name"/>

</android.support.v7.widget.Toolbar>

textAppearance 可用于应用与默认 ActionBar 标题相同的样式。

这种方法允许您更好地控制标题 View ,特别是如果您需要播放一些额外的 TextView 属性 Animation 以及您的 sceneTransition 并且您希望能够明确定义标题的最终外观。

查找默认标题TextView

如果您愿意,可以通过不同方式找到默认标题 TextView:

@Override
public void onCreate(Bundle savedInstanceState) {
// ...
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// This assumes that the title is the first child of Toolbar
TextView titleTextView = (TextView) toolbar.getChildAt(0);
// Or this assumes that the title is the first TextView inside of Toolbar
for(int i = 0; i < toolbar.getChildCount(); ++i) {
View child = toolbar.getChildAt(i);
if(view instanceof TextView) {
titleTextView = (TextView) view;
break;
}
}
}

然后可以设置transitionName:

titleTextView.setTransitionName(/* Transition name */);

这里讨论了更多查找标题 TextView 的方法 Getting ActionBar Title TextView with AppCompat v7 r21 .

关于android - 如何将 transitionName 设置为工具栏标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31294498/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com