2014-10-11 52 views
0

我正在开发一个Android应用程序。在我的应用程序中有一个活动,它有一个ListViewListView元素动态更改(以编程方式)。但是当我添加一个新的元素,listview卷轴和我不想要它。我想添加元素到列表视图和用户看到新的元素,当用户与它交互,而不是自动。我在列表视图适配器上调用notifyDataSetChanged()添加项目到textview和滚动条保持一致

我有一个例子来清除我的意思是:

ListView contains = **{ 1 , 2 , 3 , 4 , 5} 

但是屏幕尺寸只是让他们的3。假设现在{3, 4, 5}在屏幕上。现在

,我们添加'6'元素和ListView自动滚动到顶部和屏幕显示{4 , 5 , 6}

我想,当我加入'6'元素,列表视图不滚动,并显示了同样的事情(要一致),如果用户与listview进行交互并滚动,他会看到'6'元素。

回答

0

更新列表

0

我是新到Android太后只要打电话listView.setSelectionAfterHeaderView();。 我尝试添加元素的ListView上按一下按钮,我没有遇到这些问题....

<RelativeLayout 
...> 
<ListView 
    android:id="@+id/listView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="133dp"> 
</ListView> 
<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="55dp" 
    android:text="Button" /> 

public class MainActivity extends Activity { 
    ListView lv; 
    Button btn; 
    int counter = 0; 
    ArrayAdapter<String> adapter; 
    ArrayList<String> array = new ArrayList<String>(); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     lv = (ListView) findViewById(R.id.listView1); 
     btn = (Button) findViewById(R.id.button1); 
     adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array); 
     btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       String s = "Clicked "+ ++counter; 
       array.add(s); 
       adapter.notifyDataSetChanged(); 
      } 
     }); 
     lv.setAdapter(adapter); 
    } 
} 

它不会自动滚动至底部。
但是,如果你添加

android:stackFromBottom="true" 
android:transcriptMode="alwaysScroll" 

到ListView XML然后将其自动滚动至底部,当你添加新的元素列表视图。

我希望它有帮助。