在listview中操作单行

时间:2015-04-01 10:51:46

标签: android android-listview listviewitem

问题

我添加视图的方式使得每个第五项添加视图时,我只希望一个位置具有此“Mängd”行。 为什么我只能在屏幕上看到列表项目时进行编辑。 即使我有20个项目,孩子将是静态的5项.... 有没有办法只说项目1会有这个而不是

位置 - firstvisibleposition

我认为这是listview的问题

因为其他事情,我的代码当时不可理解,所以我希望你能解决我的问题。

这是我的主要问题

似乎我添加到位置0的事情也发生在6和12为什么ListView这个很奇怪? enter image description here 这是瑞典语,但这是我用列表视图得到的。 每个listview项都有一个空的Linearlayout,当我按下向下箭头按钮时,我会添加一个视图。问题是,每五个项目得到这个或我只能点击前五个。

我不明白为什么他们让ListView如此复杂。我希望能够在没有看到它的情况下找到列表中的孩子!

CODE getView

    public View getView (int position, View convertView, ViewGroup parent){
            if (convertView == null)
            {
                convertView = LayoutInflater.from(getContext()).inflate(R.layout.view_meal_item_editable, null);
            }
            convertView.setOnTouchListener(new ItemSwipeListener(position,
                    getResources().getDisplayMetrics().density));
            convertView.setClickable(true);
            // Lookup view for data population
            TextView food_item_name = (TextView) convertView.findViewById(R.id.food_item_name);
            food_item_name.setHint("hello");
    }

我在哪里添加视图

    View view = searchResultList.getAdapter().getView(position, searchResultList.getChildAt(position - searchResultList.getFirstVisiblePosition()), searchResultList);
        LinearLayout extendedView = (LinearLayout)view.findViewById(R.id.extended_food_information);
        View convertExtendedView = LayoutInflater.from(this).inflate(R.layout.change_amount_on_food_view, null);
extendedView.addView(convertExtendedView);

1 个答案:

答案 0 :(得分:1)

如果您只为第一个元素执行此操作,建议使用header view

否则,如果您在getView()方法中添加额外的视图会更好,例如:

if(position==0){
    // add extra view
} else {
    // remove extra view if exist
} 

或者你可以删除IF条件:if (convertView == null),这样每次都会给新布局充气,它会解决你的问题,但这对于列表性能不好