0

ボタンのクリックである実行時に要素が追加されるリストビューがあります。これは私の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>

edittext を選択すると、キーボードが表示され、要素がキーボードの後ろに隠れます。リストの最後の要素が表示されるように、キーボードが表示されたときに listview moveup の内容が必要です。

ボタンの onclick に listelement を追加すると、アイテムが追加されますが、下にスクロールして表示する必要があります。要素が追加されたら、すぐに最後の要素までスクロールしたい。

4

2 に答える 2

1

追加してみてください:

android:layout_alignParentBottom="true"

ListView に追加すると、キーボードがポップアップしたときにリストが上に移動するはずです。

最後の要素までスクロールするには、次を試してください。

int n= //number of elements in the list;

yourList.setSelection(n);
于 2013-06-12T16:43:52.677 に答える
0

タレクは正しい。ただし、各ボタン setOnClickListener() でカウンター変数をインクリメントし、

たとえば、 onClickListeners の外でカウンター 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);

    }

    });
}
于 2015-12-06T06:11:47.633 に答える