gpt4 book ai didi

android - CardView突然变黑

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:35:58 30 4
gpt4 key购买 nike

RecyclerView 中的 CardView 有问题。我的 CardView 突然变黑了,我的 RatingBar 变蓝了。我正在使用 InfiniteRecyclerView 但将其更改为简单的 RecyclerView 没有任何效果。我可以将 CardView 的背景颜色更改为白色,但 RatingBar 仍将是蓝色。这是正在发生的事情的一个例子:

Black CardView

我在具有相同适配器的 fragment 中的另一个 Activity 中使用普通的 RecyclerView,它看起来很好。这是一个例子:

Normal CardView

这是 single_recipe_recycler_item.xml 布局文件:

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal">

<ImageView
android:id="@+id/recipe_recycler_image"
android:layout_width="80dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:src="@mipmap/ic_launcher" />

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="5dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="5dp">

<!-- RealmRecipe Title -->
<TextView
android:id="@+id/recipe_recycler_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:gravity="end"
android:text="Very very very very very very long title"
android:textColor="@color/colorBlack"
android:textSize="@dimen/title"
android:textStyle="bold" />

<!-- Publisher -->
<TextView
android:id="@+id/recipe_recycler_publisher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_below="@id/recipe_recycler_title"
android:layout_marginTop="5dp"
android:text="Publisher"
android:textColor="@color/colorBlack"
android:textSize="@dimen/genre"
android:textStyle="italic" />

<!-- Rating -->
<RatingBar
android:id="@+id/recipe_recycler_rating_bar"
style="@style/Widget.AppCompat.RatingBar.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_below="@id/recipe_recycler_publisher"
android:layout_marginTop="5dp"
android:isIndicator="true"
android:max="5" />

</RelativeLayout>

</LinearLayout>

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

这是我的AppTheme:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>

为什么会这样? CardView 是否存在错误?有关如何解决此问题的任何建议?

最佳答案

我遇到了同样的问题,下面是我如何解决的。确保您的适配器按如下方式扩充布局。为了更好地理解,我们将此适配器称为 MyAdapter

@Override
public View getView(int position, View view, ViewGroup parent) {
if (view == null){
LayoutInflater layoutInflater = (LayoutInflater) getContext()
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.recycler_row_layout_person, null, true);

}

然后,对于您将在其中使用适配器的Activity,请确保您使用的是正确的上下文。现在假设我们将在名为 MyActivity 的 Activity 中使用 MyAdapter。在错误上下文中使用布局充气器的错误方法如下

  1. 第一次走错

    MyAdapter adapter = new MyAdapter(
    getApplicationContext(), R.layout.recycler_row_layout_person, arrayList
    );
  2. 第二种错误方式

    MyAdapter adapter = new MyAdapter(
    getContext(), R.layout.recycler_row_layout_person, arrayList
    );

这是正确的方法。这就是我解决问题的方法。

MyAdapter adapter = new MyAdapter(
MyActivity.this, R.layout.recycler_row_layout_person, arrayList
);

希望对您有所帮助

关于android - CardView突然变黑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38185880/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com