【问题标题】:How to make the ListView scroll vertically up automatically when items are added?添加项目时如何使ListView自动垂直向上滚动?
【发布时间】:2014-03-27 07:10:18
【问题描述】:

我正在创建一个聊天应用程序。在这个应用程序中,我有一个编辑文本、一个按钮和一个列表视图。当输入文本并单击按钮时,该项目被添加到列表视图中。在这里,我想制作页面添加新项目时自动向上滚动。视图不应隐藏在键盘后面。如何做到这一点?

这是我的按钮点击代码...

 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
                }
            });
            }

【问题讨论】:

    标签: android listview button layout


    【解决方案1】:

    选项 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);
    

    【讨论】:

      猜你喜欢
      • 2021-09-04
      • 2021-02-07
      • 2011-01-19
      • 2013-08-13
      • 2012-03-06
      • 1970-01-01
      • 2016-02-18
      • 2021-04-25
      • 2022-01-21
      相关资源
      最近更新 更多