片段中的CardView不可见

brandonmiles

我有一个主要活动(ActivityMain.java),我想使用它在四个片段之间导航。在这些片段之一中,我试图将CardView与RecyclerView结合使用以创建垂直卡片列表。但是,到目前为止,我在运行该应用程序时无法显示任何卡。CardView将在Android Studio的设计预览中完美显示,但是当使用实际的设备/仿真器时,它会消失。

我试图通过Java手动设置CardView的可见性,但是它仍然保持不可见。我相信该片段的布局可能会覆盖CardView的布局,但是我对Android开发还是很陌生,所以我不确定是什么问题。

下面,我粘贴了可能与我的问题相关的类和XML文件。

AdapterMainFeed.java

public class AdapterMainFeed extends RecyclerView.Adapter<AdapterMainFeed.ViewHolderMainFeed> {
    private ArrayList<Article> listArticlesMain = new ArrayList<>();
    private LayoutInflater inflater;

    public AdapterMainFeed(Context context) {
        inflater = LayoutInflater.from(context);
    }

    public void setArticlesMain(ArrayList<Article> listArticlesMain) {
        this.listArticlesMain = listArticlesMain;
        notifyDataSetChanged();
    }

    @Override
    public ViewHolderMainFeed onCreateViewHolder(ViewGroup container, int i) {
        View layout = inflater.inflate(R.layout.view_main_feed, container, false);
        Article article1 = new Article("asdf", "ghj", "klm", new Date(0));
        Article article2 = new Article("sdfg", "hjk", "lmn", new Date(0));
        Article article3 = new Article("dfgh", "jkl", "mno", new Date(0));
        listArticlesMain.add(article1);
        listArticlesMain.add(article2);
        listArticlesMain.add(article3);
        return new ViewHolderMainFeed(layout);
    }

    @Override
    public void onBindViewHolder(ViewHolderMainFeed viewHolderMainFeed, int i) {
        Article currentArticle = listArticlesMain.get(i);
        viewHolderMainFeed.articleTitle.setText(currentArticle.getTitle());
        viewHolderMainFeed.articleAuthor.setText(currentArticle.getAuthor());
        viewHolderMainFeed.articleWebsite.setText(currentArticle.getWebsite());
        DateFormat formatter = DateFormat.getDateTimeInstance();
        final String timePosted = formatter.format(currentArticle.getTimePosted());
        viewHolderMainFeed.articleTime.setText(timePosted);
    }

    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
    }

    @Override
    public int getItemCount() {
        return listArticlesMain.size();
    }

    static class ViewHolderMainFeed extends RecyclerView.ViewHolder {
        TextView articleTitle;
        TextView articleAuthor;
        TextView articleWebsite;
        TextView articleTime;

        public ViewHolderMainFeed(View itemView) {
            super(itemView);
            articleTitle = (TextView) itemView.findViewById(R.id.mainArticleTitle);
            articleAuthor = (TextView) itemView.findViewById(R.id.mainArticleAuthor);
            articleWebsite = (TextView) itemView.findViewById(R.id.mainArticleWebsite);
            articleTime = (TextView) itemView.findViewById(R.id.mainArticleTime);
        }
    }  
}

view_main_feed.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="8dp"
    tools:context="com.convergeapp.converge.ActivityMain">

   <android.support.v7.widget.CardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        card_view:cardCornerRadius="7dp"
        card_view:cardBackgroundColor="@color/colorPurpleSeance"
        android:id="@+id/mainArticleCard"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:padding="8dp"
        android:clickable="true">

        <RelativeLayout
            android:id="@+id/mainArticleLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="16dp">

            <TextView
                android:id="@+id/mainArticleTitle"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"/>

            <TextView
                android:id="@+id/mainArticleAuthor"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:layout_below="@id/mainArticleTitle"/>

            <TextView
                android:id="@+id/mainArticleWebsite"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:layout_below="@+id/mainArticleTime"/>

            <TextView
                android:id="@+id/mainArticleTime"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"/>
        </RelativeLayout>
    </android.support.v7.widget.CardView>
</RelativeLayout>
brandonmiles

经过一些更改后,我终于找到了解决方案。我所做的是将Article对象添加到主片段的onCreateView方法中的列表中。另外,我在ViewHolder中实例化了CardView,尽管这并没有帮助我最初看到这些卡。

因此,如果您遇到类似的困境并且无法解决问题,请尝试在设置对象之前实际创建对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

片段在ViewPager中不可见

来自分类Dev

列表项在片段中不可见

来自分类Dev

如何判断片段何时在 NavigationDrawer 中不可见

来自分类Dev

设置可见后,Cardview 不会变为不可见

来自分类Dev

如果不可见,如何关闭片段

来自分类Dev

片段下方的布局不可见

来自分类Dev

android textview在android 4.4.2中的地图片段上不可见,但在棒棒糖设备中可见

来自分类Dev

片段:相对布局可见性在 OnCreateView 中不可更改

来自分类Dev

CardView的阴影在Android Lollipop上不可见

来自分类Dev

返回R中的不可见和可见输出

来自分类Dev

概览中仍可见不可见的文本

来自分类Dev

表格中的不可见/可见提交按钮

来自分类Dev

不可见时如何保持地图片段的活动

来自分类Dev

单击片段后面的不可见布局:

来自分类Dev

父onPause和onResume之后,Android片段不可见

来自分类Dev

为什么选项卡在片段内不可见?

来自分类Dev

在片段内使用TabLayout;标签文字不可见

来自分类Dev

如何在TextInputLayout Android中更改setEndIconDrawable的可见性(可见,不可见或不可见)?

来自分类Dev

如何动态使此子片段的TextView可见/不可见?

来自分类Dev

按钮在设备中不可见

来自分类Dev

GridView中的项目不可见

来自分类Dev

UIScrollView中的ViewControllers不可见迅速

来自分类Dev

Chrome中的边框不可见

来自分类Dev

DAG在Web UI中不可见

来自分类Dev

$ _SESSION变量在$ GLOBALS中不可见

来自分类Dev

下拉列表在Firefox中不可见

来自分类Dev

Java中的“字段不可见”错误

来自分类Dev

div在IE中不可见

来自分类Dev

JTable在JPanel中不可见