textview内容自动换行的问题
主要是英文的情况,很多时候带个空格,它就自动给你换行了,比较扯淡。
看下图,2个红框框起来的,是属性一模一样的textview,下边那个多了个括号百分比,刚好括号在第三行,
原以为上边那个刚好显示2行,可它奇怪的换行了。实在无语。
这种简单处理方法如下
添加监听,然后在listener里处理,我这里是添加一个属性一样的textview2,然后可见性弄为Invisible,
文本先设置给这个textview2,观察它的结果
getViewTreeObserver().addOnGlobalLayoutListener(listener);
比如我们需求的textview最大显示2行,结尾用...
if (textview2.getLineCount() > 2)
{
int offset=textview2.getLayout().getLineEnd(1);
if(offset<currentRouteId.length()) {
textview.setText(currentRouteId.substring(0, offset-3)+"...");
}else {
textview.setText(currentRouteId);
}
mRTRRoutePercentTV.setText(percentShow);
}
else
{
textview.setText(currentRouteId + percentShow);
}
我上边的代码是如图上那种,如果括号百分比文字能显示下的话就不管,显示不下的话把括号百分比放下一行单独显示。
其实核心方法就这个int offset=textview2.getLayout().getLineEnd(1); 拿到第二行最后一个显示字母的偏移量。我们把偏移量之前3个替换成 省略号即可。
Button的最小高度
问题描述,app里使用了两种主题
parent="@android:style/Theme.Light.NoTitleBar"
parent="@android:style/Theme.Black.NoTitleBar"
然后发现两种主题下,Button的默认高度发生了变化
白天默认是高度是48dp,黑夜模式成了33dp。有点奇怪
我们去查看Button的源码,可以发现它有个默认的style
this(context, attrs, com.android.internal.R.attr.buttonStyle);
然后我们在Theme里找到是这样的
<item name="buttonStyle">@style/Widget.Button</item>
继续往下,结果发现根本没有控制高度的参数。
<style name="Widget.Button">
<item name="background">@drawable/btn_default</item>
<item name="focusable">true</item>
<item name="clickable">true</item>
<item name="textAppearance">?attr/textAppearanceSmallInverse</item>
<item name="textColor">@color/primary_text_light</item>
<item name="gravity">center_vertical|center_horizontal</item>
</style>
然后我换了种主题,比如Theme.Holo,
<item name="buttonStyle">@style/Widget.Holo.Button</item>
继续,可以看到设置了最小高度
<style name="Widget.Holo.Button" parent="Widget.Button">
<item name="background">@drawable/btn_default_holo_dark</item>
<item name="textAppearance">?attr/textAppearanceMedium</item>
<item name="textColor">@color/primary_text_holo_dark</item>
<item name="minHeight">48dip</item>
<item name="minWidth">64dip</item>
</style>
换成主题parent="Theme.AppCompat.DayNight.NoActionBar",也能找到类似的属性
<item name="buttonStyle">@style/Widget.AppCompat.Button</item>
<style name="Base.Widget.AppCompat.Button" parent="android:Widget">
<item name="android:background">@drawable/abc_btn_default_mtrl_shape</item>
<item name="android:textAppearance">?android:attr/textAppearanceButton</item>
<item name="android:minHeight">48dip</item>
<item name="android:minWidth">88dip</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
<item name="android:gravity">center_vertical|center_horizontal</item>
</style>
求指点,问题里描述的主题里,我是楞没找到哪里设置了button的高度了。谁能找到告诉一下呗。。
打包的时候签名出错
如图,这样打包apk会失败的。
Key was created with errors:
Picked up JAVA_TOOL_OPTIONS: -Djava.vendor="Sun Microsystems Inc."
不算解决的办法,按照它的提示,在build.gradle的android标签下加入如下代码,忽略错误继续打包
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
等以后找到签名错误的解决办法再修复