2017-12-13 9 views
0

私はグループのExpandableListViewのリスナーが崩壊し、拡大している:Typeface.NORMALにテキストビューの書体を設定しても何の効果もありません。なぜですか?

// There is a text view on group layout, no problem there. 
    @Override 
    public void onGroupCollapse(int groupPosition) { 
     // this callback is triggered, however, once the textView is BOLD by onGroupExpanded, the textView is not set back to normal, seems this line of code does nothing...WHY? 
     textView.setTypeface(textView.getTypeface(), Typeface.NORMAL); 
    } 

    @Override 
    public void onGroupExpand(int groupPosition) { 
     // it works fine 
     textView.setTypeface(textView.getTypeface(), Typeface.BOLD); 
    } 

あなたが上見ることができるように、私はグループのレイアウトでtextViewを持って、崩壊した場合にグループが展開され、I 大胆textView、私はのアンブールドTypeface.NORMALを設定し直してください。どちらのコールバックが正しくトリガされ

textViewonGroupExpanded(...)コールバックによってBOLDしたらonGroupCollapse(...)がその後トリガーされたとき、しかし、textViewは正常に戻って設定されていません。 onGroupCollapsed(...)のコード行は何もしません...なぜですか?

(ここでも、onGroupCollapse(...)がトリガされたが問題ありません。!)

+0

'textView.setTypeface(ヌル、Typeface.NORMAL)を試みるも、関連の回答やコメントを参照してください;'それはどのように見えるん? – donfuxx

+0

@donfuxx、私はあなたが提案した変更を行った後に動作します。しかし、なぜ私のコードにその問題があるのか​​説明できますか?問題を解決する最初のパラメータとしてnullを使用する理由 – Leem

+0

私は私の答えで説明しようとしました;-)私はsetTypefaceメソッドが本当に直感的ではなく、時折自分自身を混乱させていることを知っています:-P – donfuxx

答えて

0

利用代わりに、この:

textView.setTypeface(null, Typeface.NORMAL); 

あなたは(あなたのケース太字で)他の書体をドロップするようにnullを配置する必要があります。どのように私はそれを理解している1つのテキストビューは、例えばイタリック+太字などの複数の書体を持つことができ、最初のパラメータは、それらを保持するかどうかを示すことです。だから、基本的に以前のコードがBOLD保ち、NORMALを追加し、BOLDウォン;-)

がここhttps://stackoverflow.com/a/6200841/2399024

関連する問題