在手机/模拟器上看到的android自定义列表视图行不匹配

时间:2011-11-23 00:52:43

标签: android android-listview

我目前遇到自定义列表视图布局的问题。我得到了我认为最难完成定制适配器的部分。所有的数据都在那里它看起来不像它在XML中那样。在手机和模拟器上都有。

示例(忽略边框。黄色是行)

XML文件的外观。 Should be...

它呈现的是什么。

What I see

我的自定义布局的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="70dp"
    android:maxHeight="30dp" 
    android:background="@color/yellow" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="30dp"
        android:gravity="right"
        android:text="1"
        android:textColor="@color/red"
        android:textStyle="bold"/>
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="5dp"
        android:layout_toRightOf="@+id/textView1"
        android:src="@drawable/blankuser"/>    
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_margin="3dp"
        android:layout_toRightOf="@+id/imageView1"
        android:text="username"
        android:textColor="@color/black"
        android:textSize="16dp"/>    
    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/imageView1"
        android:text="Clout: "
        android:textColor="@color/dgreen"
        android:textSize="12dp"
        android:textStyle="bold|italic"/>
    <TextView
        android:id="@+id/textView3"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_centerVertical="true"
        android:ellipsize="end"
        android:text="TextView"
        android:textColor="@color/black"
        android:textSize="10dp"/>    
    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/textView4"
        android:text="TextView"
        android:textColor="@color/dgreen"
        android:textSize="12dp"
        android:textStyle="bold|italic"/>    
    <TextView
        android:id="@+id/textView7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="23dp"
        android:text=">"
        android:textStyle="bold"/>
    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginRight="5dp"
        android:layout_toLeftOf="@+id/textView7"
        android:text="score"
        android:textColor="@color/red"
        android:textSize="16dp"
        android:textStyle="bold"/>
</RelativeLayout>

我的适配器getView:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View rowView = convertView;
        LeaderView ldrView = null;

        if(rowView == null)
        {
            LayoutInflater inflater = activity.getLayoutInflater();
            rowView = inflater.inflate(R.layout.customlist, null);
            ldrView = new LeaderView();
            ldrView.username = (TextView) rowView.findViewById(R.id.textView2);
            ldrView.hometown = (TextView) rowView.findViewById(R.id.textView3);
            ldrView.score = (TextView) rowView.findViewById(R.id.textView6);
//          ldrView.avatar = (ImageView) rowView.findViewById(R.id.imageView1);
            ldrView.ranking = (TextView) rowView.findViewById(R.id.textView1);
            ldrView.clout = (TextView) rowView.findViewById(R.id.textView5);
            rowView.setTag(ldrView);
        } else {
            ldrView = (LeaderView) rowView.getTag();
        }
        LeaderList currentLeader = (LeaderList) leaders.get(position);
        ldrView.username.setText(currentLeader.getUsername());
        ldrView.hometown.setText(currentLeader.getHometown());
        ldrView.score.setText(currentLeader.getScore());
        ldrView.ranking.setText(currentLeader.getRanking());
        ldrView.clout.setText(currentLeader.getClout());
        return rowView;
    }

先谢谢!

编辑:

搞定了。这是图片或包装的错误。我不得不清理包,删除R.java,并删除imageView。在读取imageView并构建它之后看起来应该是这样。

3 个答案:

答案 0 :(得分:0)

你在代码中添加了视图的“Clout:”部分,它不会在eclipse编辑器中呈现。为clout设置一些默认文本,它应该与设备的渲染相匹配。这种观点很可能是造成这个问题的原因。

答案 1 :(得分:0)

原来是imageView的问题。我删除并重新添加到XML中,并且它正在按需运行。感谢您的帮助,我希望这有助于其他人。

答案 2 :(得分:0)