Android Inside自定义ListView,TextView Weight属性不起作用 [英] Android Inside Custom ListView, TextView Weight property not working

查看:106
本文介绍了Android Inside自定义ListView,TextView Weight属性不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个自定义的listView.列表视图数据是通过某些textview为每一行水平设置的.在主布局中,我具有相同数量的textView来设置这些列的标题.我的问题是,主布局与weight属性配合良好.但是,包含textview的listview的自定义值设置布局不适用于weight属性.

I have a custom listView. The listview data are setting by some textview horizontally for each rows. In main layout I have same number of textView for setting the title of those columns. My problem is, the main layout working fine with the weight property. But the custom value setting layout for listview which contains the textview is not working with the weight property.

主布局:(重量"属性正常工作)

Main Layout : (Weight property working correctly)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center_horizontal"
         android:weightSum="8">
        <TextView
            android:layout_weight="0"
            android:id="@+id/cid"
            android:layout_width="0dp"
            android:textSize="16dp"
            android:text="B.Id" />
        <TextView
            android:layout_weight="1"
            android:id="@+id/nm"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Name" />      
        <TextView
            android:layout_weight=".9"
            android:id="@+id/mob"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Mobile" />        
        <TextView
            android:layout_weight="1.2"
            android:id="@+id/eml"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Email" />     
        <TextView
            android:layout_weight=".8"
            android:id="@+id/bk_no"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Bike No" />       
        <TextView
            android:layout_weight=".4"
            android:id="@+id/dy_rt"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Rate" />      
        <TextView
            android:layout_weight=".9"
            android:id="@+id/frm"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="From Date" />     
        <TextView
            android:layout_weight=".9"
            android:id="@+id/to"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="To Date" />       
        <TextView
            android:layout_weight=".25"
            android:id="@+id/dy"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Dys" />       
        <TextView
            android:layout_weight=".45"
            android:id="@+id/cst"
            android:layout_width="0dp"
            android:layout_height="wrap_content" />     
        <TextView
            android:layout_weight="0"
            android:id="@+id/vid"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="V.ID" />      
        <TextView
            android:layout_weight=".9"
            android:id="@+id/book_dt"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginRight="1dp"
            android:text="Bk Date" />
        <TextView
            android:layout_weight=".3"
            android:id="@+id/rting"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Rating" />
    </LinearLayout>
    <ListView 
        android:id="@+id/list_past_report"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></ListView>
</LinearLayout>
</LinearLayout>

自定义ListView值设置布局:(report_custom_list)("Weight"属性不起作用)

Custom ListView Value setting Layout:(report_custom_list)(Weight property not working)

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout 
    android:id="@+id/cus_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center_horizontal"
    android:weightSum="8" >
<TextView
    android:layout_weight="0"
    android:id="@+id/id"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />

<TextView
    android:layout_weight="1"
    android:id="@+id/nm"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />

<TextView
    android:layout_weight=".9"
    android:id="@+id/mob"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />

<TextView
    android:layout_weight="1.2"
    android:id="@+id/eml"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />

<TextView
    android:layout_weight=".8"
    android:id="@+id/bk_no"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />

<TextView
    android:layout_weight=".4"
    android:id="@+id/dy_rt"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />

<TextView
    android:layout_weight=".9"
    android:id="@+id/frm"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />

<TextView
    android:layout_weight=".9"
    android:id="@+id/to"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />

<TextView
    android:layout_weight=".25"
    android:id="@+id/dy"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />

<TextView
    android:layout_weight=".45"
    android:id="@+id/cst"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />

<TextView
    android:layout_weight="0"
    android:id="@+id/vid"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />

<TextView
    android:layout_weight=".9"
    android:id="@+id/book_dt"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />
<TextView
    android:layout_weight=".3"
    android:id="@+id/rting"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />

</LinearLayout>
</LinearLayout>

自定义适配器设置值:

 @Override
public View getView(final int position, View convertView, ViewGroup parent)     {
    final Object[] id_obj=_id.toArray();
    Object[] name_obj=c_name1.toArray();
    Object[] mb_obj=m_no1.toArray();
    Object[] eml_obj=email1.toArray();
    ...
    Holder holder=new Holder();
    View rowView;       
         rowView = inflater.inflate(R.layout.report_custom_list, null);
         if(position%2==0)
             rowView.setBackgroundColor(Color.YELLOW);
         else
             rowView.setBackgroundColor(Color.GRAY);
         holder.tv=(TextView) rowView.findViewById(R.id.id);
         holder.tv1=(TextView) rowView.findViewById(R.id.nm);
         holder.tv2=(TextView) rowView.findViewById(R.id.mob);
         ...

         holder.tv.setText((CharSequence) id_obj[position]);
         holder.tv1.setText((CharSequence) name_obj[position]);
         holder.tv2.setText((CharSequence) mb_obj[position]);
         ...
     rowView.setOnClickListener(new OnClickListener() {            
     @Override
     public void onClick(View v) {
     }
     });

    return rowView;
 }

在我硬编码textview的宽度之前.但是,如果转到其他屏幕,则设计会崩溃.该如何解决?

Before I hard coded the width for the textview. But if it goes to different screen the design collapse. How to fix this?

推荐答案

可能的问题是:

<ListView 
    android:id="@+id/list_past_report"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</ListView>`

layout_width="match_parent"

这篇关于Android Inside自定义ListView,TextView Weight属性不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆