相关疑难解决方法(0)

android ellipsize multiline textview

我需要椭圆化多行文本视图.我的组件足够大,可以显示椭圆至少4行,但只显示2行.我试图改变组件的最小和最大行数,但它什么都没改变.

android ellipse multiline textview

159
推荐指数
8
解决办法
10万
查看次数

检查textview是否在android中进行了椭圆化处理

我的TextView宽度为wrap content.在这个TextView我设置文本,但文本每次都不是相同的长度.当文本很长时,我使用单行true和ellipsize:end.但现在我有一个问题.我想设置其他布局的可见性,但这取决于我的文本的长度.如果文本太长而无法放入屏幕我想setVisible为true,但是当文本很短并且我不需要ellipsize时,我想将可见性设置为false.所以我需要检查TextView的状态.当它的椭圆形时我想要setVisible真实,当它不是setVisible假的.我怎么能这样做 这就是我得到的:

tvAle.post(new Runnable() {

        @Override
        public void run() {

            int lineCount    = tvAle.getLineCount();
            Paint paint =  new Paint();
            paint.setTextSize(tvAle.getTextSize());
            final float size = paint.measureText(tvAle.getText().toString());
            Log.v("a", ""+size+" "+tvAle.getWidth());
            if ((int)size > (tvAle.getWidth()+10)) {
                allergiesLayout.setVisibility(View.VISIBLE);
            }

            else
                allergiesLayout.setVisibility(View.GONE);

        }
Run Code Online (Sandbox Code Playgroud)

但这个解决方案不起作用.

android ellipsis textview

16
推荐指数
2
解决办法
1万
查看次数

从ViewTreeObserver中删除侦听器

我需要监听确切的一个全局布局事件,以初始设置正确的滚动位置.在搜索了一些为什么我的调用scrollTo(x,y)似乎被忽略之后,我发现只有在知道整个布局后才能以有意义的方式调用它们.所以我正在注册GlobalLayoutListener并推迟致电scrollTo().

问题是,我只想滚动一次.所以我想我可以简单地打电话removeGlobalOnLayoutListener()来停止听.这导致了例外:IllegalStateException: This ViewTreeObserver is not alive, call getViewTreeObserver() again.所以我认为我很好,如果观察者不活着它将不会发生任何事件.但遗憾的是:每当布局以某种方式改变时,我的视图都会滚动.

我当前的代码迭代看起来像这样.我可以更改什么以确保scrollToGridPos()只进行一次调用?我知道我可以mHasFired 在内部类中添加一个本地字段,但这对我来说似乎非常脏!

final ViewTreeObserver vto = mLayout.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    public void onGlobalLayout() {
        scrollToGridPos(getCenterPoint(), false);
        if (vto.isAlive()) {
            vto.removeGlobalOnLayoutListener(this);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

android

16
推荐指数
1
解决办法
1万
查看次数

如何使用textview.getLayout()?它返回null

我正在尝试设置布局,textview所以我可以使用getEllipsisCount()方法.但是下面的代码返回null作为布局值.如何进行布局然后使用getEllipsisCount(0)方法.

    public class MainActivity extends Activity {


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView mytextview =(TextView) findViewById(R.id.textView1);
    mytextview.setText(myText);

        Layout layout = mytextview.getLayout();
        if(layout != null){
            mytextview.settext("very good layout worked\n");
        }

}
Run Code Online (Sandbox Code Playgroud)

android textview android-layout

15
推荐指数
3
解决办法
1万
查看次数

如何在Android TextView中使用自定义省略号

我有一个maxlines = 3的TextView,我想使用自己的省略号,而不是

"Lore ipsum ..."
Run Code Online (Sandbox Code Playgroud)

我需要

"Lore ipsum ... [See more]"
Run Code Online (Sandbox Code Playgroud)

为了给用户一个线索,点击视图将扩展全文.

可能吗 ?

我正在考虑检查TextView是否有省略号,并且在这种情况下添加文本"[查看更多]"并在之后设置省略号,但我找不到这样做的方法.

也许如果我找到文本被剪切的位置,我可以禁用省略号并创建子字符串,然后添加"... [查看更多]",但我又不知道如何获得该位置.

android ellipsis textview

9
推荐指数
1
解决办法
6219
查看次数