折叠工具栏布局 android 标题省略号
collapsing toolbar layout android title ellipsizes
我正在使用 android 设计支持库 25.0.1,折叠工具栏布局中的标题存在一个问题,我的标题很长,即使有 space 让它显示。
有没有什么解决办法可以在展开模式下关闭省略号显示标题。 .
although there is some space availbale the title is ellispsized
折叠工具栏代码:
<net.opacapp.multilinecollapsingtoolbar.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="@color/white"
app:titleEnabled="true"
app:expandedTitleGravity="center_horizontal"
app:expandedTitleMarginTop="75dp"
app:expandedTitleTextAppearance="@style/ExpandedAppBar"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
您可以创建自定义的 Marquee-able 工具栏,此代码可能对您有所帮助
public class MarqueeToolbar extends Toolbar {
TextView title;
public MarqueeToolbar(Context context) {
super(context);
}
public MarqueeToolbar(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MarqueeToolbar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setTitle(CharSequence title) {
if (!reflected) {
reflected = reflectTitle();
}
super.setTitle(title);
selectTitle();
}
@Override
public void setTitle(int resId) {
if (!reflected) {
reflected = reflectTitle();
}
super.setTitle(resId);
selectTitle();
}
boolean reflected = false;
private boolean reflectTitle() {
try {
Field field = Toolbar.class.getDeclaredField("mTitleTextView");
field.setAccessible(true);
title = (TextView) field.get(this);
title.setEllipsize(TextUtils.TruncateAt.MARQUEE);
title.setMarqueeRepeatLimit(-1);
return true;
} catch (NoSuchFieldException e) {
e.printStackTrace();
return false;
} catch (IllegalAccessException e) {
e.printStackTrace();
return false;
} catch (NullPointerException e) {
e.printStackTrace();
return false;
}
}
public void selectTitle() {
if (title != null)
title.setSelected(true);
}
}
我正在使用 https://github.com/opacapp/multiline-collapsingtoolbar 这个库来解决我的问题,它很好用,除了标题中的阴影
我正在使用 android 设计支持库 25.0.1,折叠工具栏布局中的标题存在一个问题,我的标题很长,即使有 space 让它显示。
有没有什么解决办法可以在展开模式下关闭省略号显示标题。 .
although there is some space availbale the title is ellispsized
折叠工具栏代码:
<net.opacapp.multilinecollapsingtoolbar.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="@color/white"
app:titleEnabled="true"
app:expandedTitleGravity="center_horizontal"
app:expandedTitleMarginTop="75dp"
app:expandedTitleTextAppearance="@style/ExpandedAppBar"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
您可以创建自定义的 Marquee-able 工具栏,此代码可能对您有所帮助
public class MarqueeToolbar extends Toolbar {
TextView title;
public MarqueeToolbar(Context context) {
super(context);
}
public MarqueeToolbar(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MarqueeToolbar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setTitle(CharSequence title) {
if (!reflected) {
reflected = reflectTitle();
}
super.setTitle(title);
selectTitle();
}
@Override
public void setTitle(int resId) {
if (!reflected) {
reflected = reflectTitle();
}
super.setTitle(resId);
selectTitle();
}
boolean reflected = false;
private boolean reflectTitle() {
try {
Field field = Toolbar.class.getDeclaredField("mTitleTextView");
field.setAccessible(true);
title = (TextView) field.get(this);
title.setEllipsize(TextUtils.TruncateAt.MARQUEE);
title.setMarqueeRepeatLimit(-1);
return true;
} catch (NoSuchFieldException e) {
e.printStackTrace();
return false;
} catch (IllegalAccessException e) {
e.printStackTrace();
return false;
} catch (NullPointerException e) {
e.printStackTrace();
return false;
}
}
public void selectTitle() {
if (title != null)
title.setSelected(true);
}
}
我正在使用 https://github.com/opacapp/multiline-collapsingtoolbar 这个库来解决我的问题,它很好用,除了标题中的阴影