【问题标题】:add auto-scroll listview, android?添加自动滚动列表视图,android?
【发布时间】:2015-12-06 14:11:47
【问题描述】:

我有一个列表视图,其中的元素是在运行时添加的,即单击按钮。 这是我的 xml:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/form"
    android:layout_alignParentTop="true" >
</ListView>

<RelativeLayout
    android:id="@+id/form"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:ems="10"
        android:inputType="text" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="Button" />

</RelativeLayout>

</RelativeLayout>

当我选择编辑文本时,键盘出现并且元素隐藏在键盘后面。当键盘出现时,我想要 listview moveup 的内容,以便我看到列表中的最后一个元素。

当我在按钮的 onclick 上添加一个列表元素时,该项目会被添加,但我必须向下滚动才能看到它。 我希望它在添加元素时立即滚动到最后一个元素。

【问题讨论】:

    标签: android listview scroll


    【解决方案1】:

    尝试添加:

    android:layout_alignParentBottom="true"
    

    到您的 ListView,这应该会在键盘弹出时将列表向上移动。

    向下滚动到最后一个元素试试:

    int n= //number of elements in the list;
    
    yourList.setSelection(n);
    

    【讨论】:

      【解决方案2】:

      塔雷克是对的。但是在每个按钮 setOnClickListener() 和

      中增加你的计数器变量

      例如在 onClickListeners 之外声明你的 counter int 变量:

      public class MyClass extends Fragment{
      
      int arrayPosition = 0;//counter variable- set it to zero then increment in the buttons
      
      public void onCreate(Bundle savedInstanceState){...}
      public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState){
      
          final ArrayAdapter<YourClass> yourAdapter = new YourAdapter();
          final ListView listView = (ListView)v.findViewById(R.id.imortant_list_view);
          listView.setAdapter(yourAdapter);
      
          myButtonsetOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View v) {
      
                      ...whatever you button does here
      
                      arrayPosition++;
                      listView.setSelection(arrayPosition);
      
          }
      
          });
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-04
        • 1970-01-01
        • 2013-08-17
        • 2023-03-31
        • 1970-01-01
        • 2012-08-05
        • 2013-09-22
        • 1970-01-01
        相关资源
        最近更新 更多