Можно ли отключить прокрутку в listView?

Я динамически добавляю элементы в ListViewи хочу, чтобы все элементы всегда были видны, без прокрутки.

Код макета:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/recipe_inside"
android:orientation="vertical" >

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="match_parent"
            android:layout_height="16dp"
            android:src="@drawable/head_cella" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="41dp"
            android:background="@drawable/body_cella"
            android:gravity="center_horizontal"
            android:paddingTop="5dp"
            android:text="Remember to save before leaving this page or inserted/modified data will be lost."
            android:textColor="#000000"
            android:textSize="13dp" />

        <ImageView
            android:id="@+id/ImageView01"
            android:layout_width="match_parent"
            android:layout_height="16dp"
            android:layout_marginTop="30dp"
            android:src="@drawable/head_cella" />

        <TextView
            android:id="@+id/TextView01"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:background="@drawable/body_cella"
            android:gravity="center_horizontal"
            android:paddingTop="10dp"
            android:text="Category"
            android:textColor="#000000"
            android:textSize="15dp" />

        <Spinner
            android:id="@+id/category_spinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <ImageView
            android:id="@+id/ImageView02"
            android:layout_width="match_parent"
            android:layout_height="16dp"
            android:layout_marginTop="30dp"
            android:src="@drawable/head_cella" />

        <TextView
            android:id="@+id/TextView02"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:background="@drawable/body_cella"
            android:gravity="center_horizontal"
            android:paddingTop="10dp"
            android:text="Name"
            android:textColor="#000000"
            android:textSize="15dp" />

        <EditText
            android:id="@+id/recipe_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="Recipe title" android:lines="1"/>

        <ImageView
            android:id="@+id/ImageView03"
            android:layout_width="match_parent"
            android:layout_height="16dp"
            android:layout_marginTop="30dp"
            android:src="@drawable/head_cella" />

        <TextView
            android:id="@+id/TextView03"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:background="@drawable/body_cella"
            android:gravity="center_horizontal"
            android:paddingTop="10dp"
            android:text="Ingredients"
            android:textColor="#000000"
            android:textSize="15dp" />
         <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" android:cacheColorHint="#00000000" android:divider="#00000000"
            android:isScrollContainer="false"
            >
       </ListView>

         <Button
             android:id="@+id/button_ing"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="" android:background="@drawable/add_recipe_button" android:onClick="addItems"/>

    </LinearLayout>

</ScrollView></LinearLayout>

старый код функции OnCreate():

protected void onCreate(Bundle savedInstanceState)
{

    super.onCreate(savedInstanceState);

    setContentView(R.layout.add_recipe_form);

    spinner = (Spinner)myhead.findViewById(R.id.category_spinner);

    Cursor cursor = mydb.getCategoriesList();
    ArrayList<Category> list = new ArrayList<Category>();
    list.add(new Category(0,"Choose a category"));

    while (cursor.moveToNext()) {
        list.add(new Category(cursor.getInt(0),cursor.getString(1))); 
    }
    // Step 2: Create and fill an ArrayAdapter with a bunch of "State" objects
    ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, list);

    // Step 3: Tell the spinner about our adapter
    spinner.setAdapter(spinnerArrayAdapter);   
    spinner.setOnItemSelectedListener(this);


    setListAdapter(adapter);
    ingredients.add((View)findViewById(R.layout.row_add_recipe));
    adapter.notifyDataSetChanged();
}

Если я перемещаю код, связанный с заполнением счетчика данными из базы данных, он всегда возвращает мне исключение NullPointerException, поскольку его нет в моем макете. Поэтому мне нужно сохранить его здесь, и решение, добавляющее addHeaderView() в мой ListView, кажется нормальным, но у меня есть еще одно исключение NullPointerException, касающееся макета головы:

protected void onCreate(Bundle savedInstanceState)
{

    super.onCreate(savedInstanceState);

    setContentView(R.layout.add_recipe_form);
    ListView mylistview = (ListView) findViewById(android.R.id.list);
    LinearLayout myhead = (LinearLayout)findViewById(R.id.linear_form);
    mylistview.addHeaderView(myhead);
    spinner = (Spinner)myhead.findViewById(R.id.category_spinner);

    Cursor cursor = mydb.getCategoriesList();
    ArrayList<Category> list = new ArrayList<Category>();
    list.add(new Category(0,"Choose a category"));

    while (cursor.moveToNext()) {
        list.add(new Category(cursor.getInt(0),cursor.getString(1))); 
    }
    // Step 2: Create and fill an ArrayAdapter with a bunch of "State" objects
    ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, list);

    // Step 3: Tell the spinner about our adapter
    spinner.setAdapter(spinnerArrayAdapter);   
    spinner.setOnItemSelectedListener(this);


    setListAdapter(adapter);
    ingredients.add((View)findViewById(R.layout.row_add_recipe));
    adapter.notifyDataSetChanged();
}
9
задан Jonathan Soifer 26 May 2016 в 18:06
поделиться