循环中的多个膨胀视图

Posted

技术标签:

【中文标题】循环中的多个膨胀视图【英文标题】:Multiple inflated views in loop for 【发布时间】:2012-11-17 18:27:15 【问题描述】:

我想显示几个ListView 视图,每个视图在LinearLayout 中都有对应的标题。

我有一个LinearLayout,我膨胀了一个视图来填充标题和ListView,并在循环中将该视图添加到LinearLayout,但只出现一个标题和列表(第一个)。

我希望包含标题和列表视图的视图出现的次数与 for 循环重复的次数一样多。

让我给你看代码:

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 

//fragment_history: a layout with a LinearLayout inside called "main"

      View fragmentHistory = inflater.inflate(R.layout.fragment_history, container, false);

//I want to show a date, and all the transactions accomplished that date. With this two arrays, I pretend to loop by day, show the date as title and show the transactions of that day in the listview.

        allExpenses = dataExpenses.getAllExpenses();
        allDatesExpenses = dataExpenses.getAllDates();

// The LinearLayout inside the fragmentHistory layout 

        LinearLayout mainLayout = (LinearLayout) fragmentHistory.findViewById(R.id.main);       
        LayoutInflater layoutInflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

// I made a for loop, and I have two different dates. Two transactions in the first date, and one in the second day. But only the two transactions are been shown.

        for(int x = 0, y = allDatesExpenses.size(); x < y; x++)

            View view = layoutInflater.inflate(R.layout.layout_title, null);        

            Expense expense = allDatesExpenses.get(x);

            TextView text = Font.useHandelGotic(this.context, (TextView) view.findViewById(R.id.textViewTitleDate)) ;
    text.setText(expense.getDateExpense());  

            ListView listview = (ListView) view.findViewById(android.R.id.list);

            ArrayList<Expense> expensesByDate = (ArrayList<Expense>) dataExpenses.getExpensesByDate(expense.getDateExpense());
            listview.setDivider(null);
            listview.setAdapter(new AdapterTransaction(this.context, expensesByDate));

            mainLayout.addView(view);

               
        return fragmentHistory;
    

【问题讨论】:

【参考方案1】:

根据您提供的信息,我猜您的 LinearLayout 设置为水平(默认),因此您的所有标题/列表视图实际上都已添加,但您看不到它们,因为它们是离开一边。通过添加来解决这个问题

android:orientation="vertical"

到您的LinearLayout XML 标记。

如果这不是问题,请发布相关的 XML 布局。

【讨论】:

谢谢!太不可思议了!小米代码一切正常。这就是问题所在! xml 没有方向。我把它和所有需要的工作。

以上是关于循环中的多个膨胀视图的主要内容,如果未能解决你的问题,请参考以下文章

片段对话框中的片段膨胀引发错误“片段未创建视图”

如何使用Android自定义视图中的属性设置调整膨胀布局的大小?

为每个视图膨胀新的布局 xml - PagerAdapter 中的实例化项目

无法在 Android 中的 XML 中设置膨胀视图的布局宽度、高度和重量

膨胀视图和返回键 android 或 onBackPressed()

在 DialogFragment 中为 AlertDialog 膨胀自定义视图时出现问题