文本更改时更新TextSwitcher的父级

时间:2015-09-26 12:18:46

标签: android android-view

我使用textSwither进行隐藏/以这种方式显示文本的一部分:

txtDescription.setInAnimation(in);
txtDescription.setOutAnimation(out);
txtDescription.setFactory(new ViewSwitcher.ViewFactory() {
            @Override
            public View makeView() {
                TextView textView = new TextView(ShopContentDetailActivity.this);
                textView.setTextColor(getResources().getColor(R.color.NightDark));
                return textView;
            }
        });  

并将此方法称为更改文本:

private void changeDescription() {
        if (displayShort)
            txtDescription.setText(Html.fromHtml(shortDescription));
        else txtDescription.setText(fullDescription);
        displayShort = !displayShort;
    }

我的问题是当用户触摸textSwitcher显示文本并再次触摸以隐藏它时,textSwitcher的父视图(线性布局)的高度保持为显示文本并且不改变其高度。
如何在文本更改时更新父视图? (触摸显示全文时可以正常使用)

1 个答案:

答案 0 :(得分:1)

我以这种方式解决了我的问题:(我认为TextSwutcher将TextViews的可见性更改为 INVISIBLE 而不是 GONE 然后我使用此trck)

 private void changeDescription() {
        if (displayShort) {
            txtDescription.setCurrentText(null);  // this line change invisible textView visible but without text and make it height 0 and then set the second textView text
            txtDescription.setText(Html.fromHtml(shortDescription));
        } else txtDescription.setText(shopContent.getDescription());
        displayShort = !displayShort;

    } 

但是有一个问题对我的情况来说并不那么重要:当你隐藏文本的一部分时它会闪烁 如果我解决它,我会更新我的答案。