如何将列表视图对齐到页面顶部

时间:2013-03-12 22:00:11

标签: android eclipse

我的列表项目显示在页面的底部,我的意思是,最后一项是在屏幕的底部,其他项目是在它的基础上构建的。我希望屏幕顶部的第一个项目和其他项目放在第一个项目之后,彼此之后。我怎样才能做到这一点? 这是我的代码:

public class MainActivity extends Activity {

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

    // Listimizde kaç tane eleman olduğunu bulmak için bunu kullanıyoruz
    ListView listView = (ListView) findViewById(R.id.linkList);

    String[] links = new String[] { "Facebook", "Ek$iSozluk", "Youtube",
            "Twitter", "Hurriyet", "Gmail" };

    // ArrayAdapter, bu listviewin nasıl görüneceğini belirtir. ilk argument
    // this, yani bu list
    // 2. argument list viewin şekli, yani simple dropdown şeklinde olsun,
    // 3. argument de links
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, links);

    listView.setAdapter(adapter); // start the adapter for the list view
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapter, View view, int pos,
                long id) {
            // SO listener
            Intent myWebLink = new Intent(
                    android.content.Intent.ACTION_VIEW);
            myWebLink.setData(Uri.parse("http://www.facebook.com"));
            switch (pos) {

            case 0:
                myWebLink.setData(Uri.parse("http://www.facebook.com"));
                startActivity(myWebLink);
                // go to google
                break;
            case 1:
                myWebLink.setData(Uri.parse("http://www.eksisozluk.com"));
                startActivity(myWebLink);
                // go to facebook
                break;
            case 2:
                myWebLink.setData(Uri.parse("http://www.youtube.com"));
                startActivity(myWebLink);
                break;
            case 3:
                myWebLink.setData(Uri.parse("http://www.twitter.com"));
                startActivity(myWebLink);
                break;
            case 4:
                myWebLink.setData(Uri.parse("http://www.hurriyet.com.tr"));
                startActivity(myWebLink);
                break;
            case 5:
                myWebLink.setData(Uri.parse("http://www.gmail.com"));
                startActivity(myWebLink);
                break;
            default:

                // where ever you want
                break;
            }

        }
    });

    // OR listener

}

这是我的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<ListView
    android:id="@+id/linkList"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentTop="@+id/linkList" >

</ListView>

由于

1 个答案:

答案 0 :(得分:6)

不要将ListView对齐到底部。更具体地说,删除两个对齐线:

<ListView
    android:id="@+id/linkList"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

alignParentTop采用布尔值,而不是引用。此外,这是标准的,所以你在这里不需要它。 alignParentBottom是导致问题的原因,您正在调整父母的底部。

另外,wrap_content身高ListView通常是一个坏主意。