0

アプリケーションには 3 つのコンポーネントがあり、上部に 1 つの textview(inputType:textMultiline, scrollbar:vertical,gravity:bottom|right)、中央に 1 つの editview、下部に 1 つのボタンがあります。editview に何かを入力してボタンをクリックすると、edit ビューに書かれたテキストが textview に表示されます。OK を押すたびに、テキストに下部が表示され、表示されるのは最初の 3 つの入力です。最後の入力を表示するには、テキストビューを下にスクロールする必要があります。

ここで、ユーザーがテキストビューで最後の入力を確認できるようにします。新しいテキストを入力するたびに、テキストビューの自動スクロールダウン用のコードがあるかどうかを知りたいです。Androidアプリの開発は初めてです。ありがとう!

4

4 に答える 4

5

テキストを textview に設定するときは、それに foucus を設定するだけです。お気に入り

tv.setFocusable(true);

テキストビューで文字列を変更すると、ビューが自動的にフォーカスされます。

テキストビューにテキストを何度も追加している場合は、これを試すことができます

    int scroll_amount = tv.getBottom();
    tv.scrollTo(0, scroll_amount);

それがうまくいくことを願っています..

これも試してみてください

    int scroll_amount = (int) (tv.getLineCount() * tv.getLineHeight()) - (tv.getBottom() - tv.getTop());
    tv.scrollTo(0, scroll_amount);
于 2012-04-26T04:12:31.497 に答える
1

scrollView.scrollTo(x、y)を使用して、目的の位置に自動スクロールできます。

/ *編集* /

scrollviewのカスタムクラスを作成します

package com.android.mypackage
public class myScrollView extends ScrollView{
    private int maxY = 0;
    @Override
    protected void onScrollChanged(int x, int y, int oldx, int oldy) {
        super.onScrollChanged(x, y, oldx, oldy);
       if(y>maxY)
        maxY=y;
    }
    public void moveToEnd(){
        this.scrollTo(0, maxY);
    }
}

以下のように、レイアウトxmlでこのカスタムクラスを使用します。

...
<com.android.mypackage.myScrollView
    android:id="@+id/my_scrollview"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <TextView .../>
</com.android.mypackage.myScrollView>
.....

[OK]ボタンを押すと、関数myscrollViewObj.movetoEnd();を呼び出すだけです。これは単なるドラフトコードであり、まだテストされていません。

于 2012-04-26T02:43:43.450 に答える
1

私はすでにこれに対する答えを得ました!アイデアをくれてありがとう。私は将来それらを使用できるかもしれません。@Bharat Sharma、あなたはほとんど答えを得ました!ありがとう!

public void onClick(View v) {
            // TODO Auto-generated method stub
            log.setText(log.getText() + "\n" +input.getText());

            if(log.getLineCount() > 5){
                scroll_amount = scroll_amount + log.getLineHeight();
                log.scrollTo(0, scroll_amount);
            }
        }

onCreate() の外で可変スクロール量を呼び出しました。再度、感謝します!

于 2012-04-26T12:08:13.580 に答える