2016-10-24 42 views
1

私はチャットビューを持っていて、スクロールビューを持っていて、テキストビューを持っていて、スクロールビューの上のテキストを編集しています。新しいメッセージがテキストビューに印刷されると、スクロールビューがフルスクロールして終了します。スクロールビューのフルスクロール時にEditTextのフォーカスが失われました

activity.scrollView.post(new Runnable() { 
      @Override 
      public void run() { 
       activity.scrollView.fullScroll(ScrollView.FOCUS_DOWN); 
      } 
     }); 

しかし、私はのEditTextにテキストを入力した場合、それは常にスクロールダウンし、エディットテキストからのフォーカスを失っています(メッセージが頻繁に印刷した場合ので、それはメッセージを入力するために非現実的です)。どうすれば修正できますか?私はいくつかの答えをスタックで見つけましたが、それは私を助けませんでした。はい、これ。

editText.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View view, boolean hasFocus) { 
      if (hasFocus) { 
       scrollView.postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         scrollView.fullScroll(ScrollView.FOCUS_DOWN); 
        } 
       }, 200); 
      } else { 
      } 
     } 
    }); 

UPD:scrollviewの子です私textviewsは、プロパティ

textView.setTextIsSelectable(true); 

を持っていた私は、そのプロパティを削除し、そして今、それはOKですが、私はメッセージと自動スクロールが私を防ぐことはできません入力することができます。しかしそれはなぜそれが起こったのかまだ疑問です。また、私はまだテキストを選択(コピー)する能力が欲しいです。

答えて

0

スクロールイベント後にフォーカス要求を追加できます。あなたは、このような何かを終了するには、スクロールを待つために実行可能で、それをラップする必要があります。

scrollView.fullScroll(ScrollView.FOCUS_DOWN); 
scrollView.post(new Runnable() { 
    @Override 
    public void run() { 
     editText.requestFocus(); 
    } 
}); 

参照this post詳細は。

関連する問題