CardView没有显示内容eclipse

时间:2015-07-25 04:45:34

标签: android eclipse android-layout android-support-library android-cardview

我正在使用android.support.v7.widget.CardViewImageView中显示TextView两个RecyclerView但卡片视图未显示内容(仅显示空白白卡)当屏幕方向为垂直时,另一方面,当方向为风景时,它会显示内容。

当我从AndroidStudio运行相同的项目时,没有问题一切正常。

我不明白那里有什么问题,日食有问题吗?

请参阅以下代码,

PostListFragment

public class PostListFragment extends Fragment implements AppConfig {

    private ArrayList<Post> mPostArrayList;
    private PostRecyclerAdapter mPostRecyclerAdapter;
    private RecyclerView mRecyclerView;
    //other declarations

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        //removed 
    }

    private void init() {

        // Set up RecyclerView
        mRecyclerView = (RecyclerView) mRootView
                .findViewById(R.id.mPostListRecyclerView);

        // Setup layout manager for mPostArrayList and column count
        final LinearLayoutManager mLayoutManager = new LinearLayoutManager(
                getActivity());

        // Control orientation of the mPostArrayList
        mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        mLayoutManager.scrollToPosition(0);

        // Attach layout manager
        mRecyclerView.setLayoutManager(mLayoutManager);

        // Listen to the item touching
        mRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(
                getActivity(),
                new RecyclerItemClickListener.OnItemClickListener() {
                    @Override
                    public void onItemClick(View itemView, int position) {
                        //some action
                    }
                }));

        mPostArrayList = new ArrayList<>();

        // Bind adapter to recycler
        mPostRecyclerAdapter = new PostRecyclerAdapter(
                getActivity(), mPostArrayList);
        mRecyclerView.setAdapter(mPostRecyclerAdapter);

    }

    private void getPosts() {

        // Execute async task
        new AsyncPosts().execute(mPostURL);
    }

    public class AsyncPosts extends AsyncTask<Object, String, JSONObject> {
        //no problem with this
    }
}

用于PostListFragment的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mParentLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <FrameLayout
        android:id="@+id/mPostListContainer"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <android.support.v4.widget.SwipeRefreshLayout
            android:id="@+id/mPostListSwipeRefreshLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <android.support.v7.widget.RecyclerView
                android:id="@+id/mPostListRecyclerView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </android.support.v4.widget.SwipeRefreshLayout>
    </FrameLayout>

    <!-- removed -->

</LinearLayout>

这是适配器来设置值, PostRecyclerAdapter

public class PostRecyclerAdapter extends
        RecyclerView.Adapter<PostRecyclerAdapter.SimpleItemViewHolder> {

    private Context mContext;
    private List<Post> post;

    // Provide a suitable constructor (depends on the kind of data store)
    public PostRecyclerAdapter(Context context, List<Post> items) {

        this.mContext = context;
        this.post = items;
    }

    // Return the size of your data set (invoked by the layout manager)
    @Override
    public int getItemCount() {
        return this.post.size();
    }

    // Create new items (invoked by the layout manager)
    // Usually involves inflating a layout from XML and returning the holder
    @Override
    public SimpleItemViewHolder onCreateViewHolder(ViewGroup viewGroup,
            int viewType) {
        View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(
                R.layout.post_list_item, viewGroup, false);
        return new SimpleItemViewHolder(itemView);
    }

    // Replace the contents of a view (invoked by the layout manager)
    // Involves populating data into the item through holder
    @Override
    public void onBindViewHolder(SimpleItemViewHolder viewHolder, int position) {

        Glide.with(mContext).load(post.get(position).IMG_URL)
                .placeholder(R.drawable.ic_placeholder).crossFade(1000)
                .centerCrop().into(viewHolder.mPostListSmallThumbnail);

        viewHolder.mPostListSmallTitle.setText(post.get(position).POST_TITLE);
        viewHolder.mPostListSmallContent
                .setText(post.get(position).POST_CONTENT);

    }

    // Provide a reference to the views for each data item
    // Provide access to all the views for a data item in a view holder
    public final static class SimpleItemViewHolder extends
            RecyclerView.ViewHolder {

        ImageView mPostListSmallThumbnail;
        TextView mPostListSmallTitle, mPostListSmallContent;

        public SimpleItemViewHolder(View itemView) {
            super(itemView);
            mPostListSmallThumbnail = (ImageView) itemView
                    .findViewById(R.id.mPostListSmallThumbnail);
            mPostListSmallTitle = (TextView) itemView
                    .findViewById(R.id.mPostListSmallTitle);
            mPostListSmallContent = (TextView) itemView
                    .findViewById(R.id.mPostListSmallContent);
        }
    }
}

post_list_item

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mPostListSmallCard"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:foreground="@drawable/card_background"
    android:clickable="true"
    app:cardCornerRadius="@dimen/blog_card_radius"
    app:cardUseCompatPadding="true"
    app:contentPadding="@dimen/blog_card_radius">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/mPostListSmallThumbnail"
            android:layout_width="@dimen/blog_image_thumb_dim"
            android:layout_height="@dimen/blog_image_thumb_dim"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:background="@drawable/ic_placeholder"
            android:adjustViewBounds="true"
            android:contentDescription="@string/image_thumbnail_placeholder" />

        <TextView
            android:id="@+id/mPostListSmallTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="@dimen/post_list_margin_left"
            android:layout_marginStart="@dimen/post_list_margin_right"
            android:layout_toEndOf="@+id/mPostListSmallThumbnail"
            android:layout_toRightOf="@+id/mPostListSmallThumbnail"
            android:ellipsize="end"
            android:lines="2"
            android:singleLine="false"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/mPostListSmallContent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/mPostListSmallThumbnail"
            android:layout_alignEnd="@+id/mPostListSmallTitle"
            android:layout_alignLeft="@+id/mPostListSmallTitle"
            android:layout_alignRight="@+id/mPostListSmallTitle"
            android:layout_alignStart="@+id/mPostListSmallTitle"
            android:layout_below="@+id/mPostListSmallTitle"
            android:ellipsize="end"
            android:lines="3"
            android:textAppearance="?android:attr/textAppearanceSmall" />

    </RelativeLayout>

</android.support.v7.widget.CardView>

这是横向布局的post_list_item 脊/ post_list_item

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mPostListSmallCard"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginRight="@dimen/blog_card_margin_landscape"
    android:layout_marginLeft="@dimen/blog_card_margin_landscape"
    app:cardCornerRadius="@dimen/blog_card_radius"
    app:cardUseCompatPadding="true">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/mPostListSmallThumbnail"
            android:layout_width="@dimen/blog_image_thumb_dim"
            android:layout_height="@dimen/blog_image_thumb_dim"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:adjustViewBounds="true"
            android:contentDescription="@string/image_thumbnail_placeholder" />

        <TextView
            android:id="@+id/mPostListSmallTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="@dimen/post_list_margin_left"
            android:layout_marginStart="@dimen/post_list_margin_right"
            android:layout_toEndOf="@+id/mPostListSmallThumbnail"
            android:layout_toRightOf="@+id/mPostListSmallThumbnail"
            android:ellipsize="end"
            android:lines="2"
            android:singleLine="false"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/mPostListSmallContent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/mPostListSmallThumbnail"
            android:layout_alignEnd="@+id/mPostListSmallTitle"
            android:layout_alignLeft="@+id/mPostListSmallTitle"
            android:layout_alignRight="@+id/mPostListSmallTitle"
            android:layout_alignStart="@+id/mPostListSmallTitle"
            android:layout_below="@+id/mPostListSmallTitle"
            android:ellipsize="end"
            android:lines="3"
            android:textAppearance="?android:attr/textAppearanceSmall" />

    </RelativeLayout>

</android.support.v7.widget.CardView>

0 个答案:

没有答案