簡體   English   中英

添加項目后如何使ListView自動垂直向上滾動?

[英]How to make the ListView scroll vertically up automatically when items are added?

我正在創建一個聊天應用程序。在這里,我有一個編輯文本,一個按鈕和一個列表視圖。當輸入文本並單擊按鈕時,該項目即被添加到列表視圖。在這里,我要使頁面自動向上滾動添加新項目時。視圖不應隱藏在鍵盤后面。如何執行此操作?

這是我的按鈕點擊代碼...

 final EditText et = (EditText)findViewById(R.id.EditText1);
            final ImageButton imb=(ImageButton)findViewById(R.id.btn_send);
            imb.setOnClickListener(new OnClickListener()
            {
             @Override
             public void onClick(View arg0) 
             { 
                String str = et.getText().toString();
                  web1.add(str);
                  Toast.makeText(ShoutSingleProgram.this, "You entered...."+str, Toast.LENGTH_SHORT).show();
                  adapter1.notifyDataSetChanged();
                  et.setText("");

                    }
            });

            et.addTextChangedListener(new TextWatcher() {
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {

                                  if(s.toString().trim().length()==0){
                                    imb.setEnabled(false);
                                   } else {
                                        imb.setEnabled(true);
                                    }
                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub
                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                }
            });
            }

選項1.每當添加新測試時,調用此方法。

private void scrollMyListViewToBottom() {
    listView.post(new Runnable() {
        @Override
        public void run() {
            // Select the last row so it will scroll into view...
            listView.setSelection(myListAdapter.getCount() - 1);
        }
    });
}

選項2。

listView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);

將列表的開頭設置在底部

listView.setStackFromBottom(true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM