Android AdapterView项未填充父项

Android AdapterView项未填充父项,android,layout,Android,Layout,我创建了扩展“AdapterView”的类A,并创建了扩展提供数据的“BaseAdapter”的类D 问题是,每个AdapterView项都没有将其长度延伸到AdapterView的长度,并且每个项的长度都不同,因为它与项中文本的长度相同。我将所有可以设置的布局参数设置为“填充父对象”,但这没有意义 我应该查哪个班?AdapterView项中的AdapterView子类、BaseAdapter子类或TextView子类?(我将TextView子类化以获得一些额外效果) getView方法: pu

我创建了扩展“AdapterView”的类A,并创建了扩展提供数据的“BaseAdapter”的类D

问题是,每个AdapterView项都没有将其长度延伸到AdapterView的长度,并且每个项的长度都不同,因为它与项中文本的长度相同。我将所有可以设置的布局参数设置为“填充父对象”,但这没有意义

我应该查哪个班?AdapterView项中的AdapterView子类、BaseAdapter子类或TextView子类?(我将TextView子类化以获得一些额外效果)

getView方法:

public View getView(int position, View convertView, ViewGroup viewGroup) {

    ViewHolder holder;
    if (convertView == null) {
        convertView = LayoutInflater.from(context).inflate(
                R.layout.colselector_menu_item, null);
        holder = new ViewHolder();

        convertView.setTag(holder);

        TextView tv = new VerticalTextView(viewGroup.getContext());
        tv.setTextColor(Color.RED);

        NewsInTimeApp app = (NewsInTimeApp) (((MainActivity) context)
                .getApplication());
        tv.setTextSize(Integer.parseInt(app.getConfig().get(
                AppConfig.CFGNAME_UI_MAIN_COLSELECTOR_TEXTSIZE)));
        ((LinearLayout) convertView).addView(tv);
        holder.groupItem = tv;

    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    holder.groupItem.setText(list.get(position).getName());
    holder.collId = list.get(position).getId();

    return convertView;
}
colselector_menu_item.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#e1e1e1"
android:orientation="horizontal" >

<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:background="@android:color/darker_gray"/>

</LinearLayout>

添加视图时,没有为TextView本身指定任何布局参数

尝试:


如果在添加视图时以API为目标,则不会为TextView本身指定任何布局参数

尝试:


如果有,请全部检查。显示它们的代码也会有帮助。@Geobits至少要显示3个类和3个布局xml,看起来太混乱了。我上传了快照:蓝色视图是弹出窗口中的AdapterView,浅灰色视图是AdapterView项。你可以看到AdapterView的高度比任何项目的高度都要大。是的,但是你得到的是“包装内容”的定义,所以有些东西没有设置正确。检查所有的布局,特别是检查代码中使它们膨胀的任何地方。至少,从适配器的
getView
方法粘贴代码。在任何地方设置参数或膨胀视图都可能是罪魁祸首,但如果根本看不到任何代码,就不可能缩小范围。@Geobits是的,我想可能有一些“包装内容”,但正如我所说的,我已经将所有可以设置的更改为“填充父项”。getView方法粘贴在上面,我想这可能是问题的原因。还有项目的布局xml。请全部选中。显示它们的代码也会有帮助。@Geobits至少要显示3个类和3个布局xml,看起来太混乱了。我上传了快照:蓝色视图是弹出窗口中的AdapterView,浅灰色视图是AdapterView项。你可以看到AdapterView的高度比任何项目的高度都要大。是的,但是你得到的是“包装内容”的定义,所以有些东西没有设置正确。检查所有的布局,特别是检查代码中使它们膨胀的任何地方。至少,从适配器的
getView
方法粘贴代码。在任何地方设置参数或膨胀视图都可能是罪魁祸首,但如果根本看不到任何代码,就不可能缩小范围。@Geobits是的,我想可能有一些“包装内容”,但正如我所说的,我已经将所有可以设置的更改为“填充父项”。getView方法粘贴在上面,我想这可能是问题的原因。还有item.Greate的布局xml,这很有效!顺便说一句,我的textview是一个垂直textview,所以我在addView方法中使用的参数实际上是“tv,LayoutParams.WRAP\u CONTENT,LayoutParams.FILL\u PARENT”。还有一个小问题——因为我展示的xml中的1px视图已经设置为“fill\u parent”,为什么我也需要将textview设置为“fill\u parent”呢?因为您在运行时显示数据,所以您必须添加运行时,否则您无法在fill\u parent中显示数据@realjinGreate,真管用!顺便说一句,我的textview是一个垂直textview,所以我在addView方法中使用的参数实际上是“tv,LayoutParams.WRAP\u CONTENT,LayoutParams.FILL\u PARENT”。还有一个小问题——因为我展示的xml中的1px视图已经设置为“fill\u parent”,为什么我也需要将textview设置为“fill\u parent”呢?因为您在运行时显示数据,所以您必须添加运行时,否则您无法在fill\u parent中显示数据@雷尔金
(LinearLayout) convertView.addView(tv, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);