更改可见性时CardView背景会改变吗?

时间:2016-04-01 08:31:43

标签: android android-layout android-studio visibility android-cardview

点击点按以编辑文字 CardView时,我必须显示TextView,点击外部会隐藏CardView。我试图将CardView背景切换为透明和白色,这样做并且它不起作用。然后我尝试将包含字母的EditTextCardView中的FrameLayout隐藏起来并显示CardView,但CardView背景样式更改为透明做过某事。 你可以在下面找到我的xml。 请告诉我这里发生了什么?

enter image description here

enter image description here

XML

<FrameLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_marginTop="@dimen/margin_padding_2">

<android.support.v7.widget.CardView
  android:id="@+id/cardView"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:padding="0dp"
  app:cardCornerRadius="@dimen/box_radius"
  app:cardElevation="0dp"
  app:contentPadding="@dimen/margin_padding_2" />

<com.package.views.EditText
  android:id="@+id/note"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="@null"
  android:cursorVisible="false"
  android:gravity="start"
  android:lineSpacingExtra="@dimen/margin_padding_1"
  android:padding="@dimen/margin_padding_2"
  android:textColor="@color/colorWhite"
  android:textSize="@dimen/text_size_5"
  app:textStyle="bold" />

</FrameLayout>

代码

 private void controlView() {
        mCard.setVisibility(View.VISIBLE);
        mNote.setBackgroundColor(ContextCompat.getColor(this, R.color.colorPrimary));
        mNote.setCursorVisible(true);
        mNote.setSelection(mNote.length());
 }

2 个答案:

答案 0 :(得分:3)

要以编程方式更改 cardview 的颜色,您可以使用:

mCard.setCardBackgroundColor(Color.TRANSPARENT);

用XML做事

mCard:cardBackgroundColor="@android:color/transparent"

答案 1 :(得分:2)

尝试使用

mCard.setCardBackgroundColor(ContextCompat.getColor(this, R.color.colorPrimary));