Android Custom Listview有两个不同的视图

时间:2015-04-05 14:20:24

标签: android listview android-listview

目前我的listview工作正常,可以返回一个视图,但我想要它 检查currentVerse.getVerseNumber()== 1的时间,如果条件为真,则返回两个不同的视图(行)。我无法弄明白,任何帮助都将受到高度赞赏。

    public View getView(int position, View convertView, ViewGroup parent) {
        VersesModel currentVerse = verses.get(position);
        if (convertView == null) {
            convertView = getActivity().getLayoutInflater().inflate(
                    R.layout.verses_custom_list, parent, false);
            viewHolder = new ViewHolder();
            font = Typeface.createFromAsset(convertView.getContext().getAssets(), "my_font.ttf");
            viewHolder.textView = (TextView) convertView.findViewById(R.id.textView_Verse);
            viewHolder.nView = (TextView) convertView.findViewById(R.id.textView_verseNumber);
            viewHolder.textView.setTypeface(font);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }
        viewHolder.textView.setText(currentVerse.getVerseText().toString());
        viewHolder.nView.setText(currentVerse.getVerseNumber() + "");
        convertView.setTag(viewHolder);
        return convertView;
    }

1 个答案:

答案 0 :(得分:0)

根据我的说法很简单......

使用您想要显示的相同布局创建两个视图的布局......

假设条件为true你想要显示LinearLayout-A而对于false你想要显示LinearLayout-B然后它的简单使用View.Visibility

if(true)
{
    LinearLayout-B.setVisibility(View.GONE);
    LinearLayout-A.setVisibility(View.VISIBLE);
}
else
{
    LinearLayout-A.setVisibility(View.GONE);
    LinearLayout-B.setVisibility(View.VISIBLE);
}

顺便说一句,我使用两者都是因为每当视图在隐藏后创建时都会记住列表视图,以便使其变得简单和健壮,否则它就会变得很糟糕...

希望它有助于你...

由于