ListView没有获得fill_parent高度

时间:2015-12-03 08:23:32

标签: android listview android-listview

我正在使用listView适配器,但我的适配器没有获得填充父级高度。

代码如下 Content_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/app_bar_main">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:orientation="horizontal">

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:gravity="right"
            android:text=" Date : " />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="110dp"
            android:layout_height="wrap_content"
            android:text=" Client " />

        <TextView
            android:layout_width="70dp"
            android:layout_height="wrap_content"
            android:text=" Id " />

        <TextView
            android:layout_width="70dp"
            android:layout_height="wrap_content"
            android:text=" Amount " />

        <TextView
            android:layout_width="70dp"
            android:layout_height="wrap_content"
            android:text=" Due " />
    </LinearLayout>

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical">

            <ListView
                android:id="@+id/listView"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"

                />
        </LinearLayout>
    </ScrollView>
</LinearLayout>

和main_activity文件:

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

    com.zerothtech.khudrotathyav1.Helper Helper = new com.zerothtech.khudrotathyav1.Helper();
    private ArrayList<HashMap> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);

        //---ListView----
        ListView lview = (ListView) findViewById(R.id.listView);
        populateList();
        listviewAdapter adapter = new listviewAdapter(this, list);
        lview.setAdapter(adapter);
        //---ListView----
    }
}

populateList()是一个填充我的列表的函数。

使用一些虚拟数据填充我的数组后,我使用适配器添加到我的listview。但是,我所能看到的只是一行一行数据。我可以在那一行数据之间滚动。

谢谢。

2 个答案:

答案 0 :(得分:1)

删除布局文件中listview的Parent中的Scrollview以设置listview的完整高度

注意:永远不要将Listview放在scrollview

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <ListView
            android:id="@+id/listView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"

            />
    </LinearLayout>

答案 1 :(得分:0)

我检查了你的布局。如果您使用列表视图,则不在滚动视图中使用。 我纠正了你的布局。

试试这个..

   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/app_bar_main"
tools:context=".MainActivity">

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:orientation="horizontal">

    <TextView
        android:text=" Date : "
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:layout_gravity="right" />
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:text=" Client "
        android:layout_width="110dp"
        android:layout_height="wrap_content" />

    <TextView
        android:text=" Id "
        android:layout_width="70dp"
        android:layout_height="wrap_content" />

    <TextView
        android:text=" Amount "
        android:layout_width="70dp"
        android:layout_height="wrap_content" />

    <TextView
        android:text=" Due "
        android:layout_width="70dp"
        android:layout_height="wrap_content" />
</LinearLayout>



    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">

        <ListView
            android:id="@+id/listView"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"

            />
    </LinearLayout>