2

TextViewCardView 안에 넣으려고하지만 아무 소용이 없습니다. 내가해야할 것은 두 개의 숫자가 두 개의 숫자 안에 표시되도록하는 것입니다. CardViews. 아래 코드를 사용하면 두 개의 CardViews이 나타나지만 텍스트/내용은 표시되지 않습니다.콘텐츠를 표시하지 않는 Android CardView

많은 조합을 시도했지만 아무 것도 작동하지 않는 것 같습니다! TextViewLinearLayout 안에 배치해도 작동하지 않으며 CardView의 직계 하위 항목이 아닙니다. 나를 도울 수있는 사람을

calendar_view.xml 

<?xml version="1.0" encoding="utf-8"?> 
<hoo.box.facecalendar.SquareCardView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    card_view:cardCornerRadius="4dp" 
    card_view:cardUseCompatPadding="true" 
    android:id="@+id/calendar_view_card" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

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

     <TextView 
      android:id="@+id/calendar_view_day" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:gravity="center" 
      android:singleLine="true" 
      android:textColor="@color/primary_text"/> 

    </RelativeLayout> 

</hoo.box.facecalendar.SquareCardView> 

SquareCardView.java 

public class SquareCardView extends CardView { 
    public SquareCardView(Context context) { 
     super(context); 
    } 

    public SquareCardView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public SquareCardView(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 

    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     final int width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec); 
     setMeasuredDimension(width, width); 
    } 
} 

CalendarAdapter.java 

public class CalendarAdapter extends RecyclerView.Adapter<CalendarAdapter.CalendarViewHolder> { 
    private LayoutInflater inflater; 
    private Date curDate; 
    private List<Date> dateList; 

    public CalendarAdapter(Context context) { 
     inflater = LayoutInflater.from(context); 
     curDate = new Date(); 
     dateList = new ArrayList<Date>(); 
    } 

    @Override 
    public CalendarViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
     View view = inflater.inflate(R.layout.calendar_view, viewGroup, false); 
     CalendarViewHolder viewHolder = new CalendarViewHolder(view); 
     return viewHolder; 
    } 

    @Override 
    public void onBindViewHolder(CalendarViewHolder calendarViewHolder, int i) { 
     if (dateList.size() <= i) { 
      Date tempDate = new Date(curDate); 
      tempDate.addDays(i + 1); 
      dateList.add(i, tempDate); 
     } 
     Date iDate = dateList.get(i); 
     calendarViewHolder.TEXTVIEW.setText(Integer.toString(iDate.day)); 
    } 

    @Override 
    public int getItemCount() { return dateList.size() + 1; } 

    class CalendarViewHolder extends RecyclerView.ViewHolder { 
     public final TextView TEXTVIEW; 
     public final SquareCardView CARDVIEW; 

     public CalendarViewHolder(View itemView) { 
      super(itemView); 

      TEXTVIEW = (TextView) itemView.findViewById(R.id.calendar_view_day); 
      CARDVIEW = (SquareCardView) itemView.findViewById(R.id.calendar_view_card); 
     } 
    } 
} 

그냥 이전 감사 :

여기에 내 현재 코드입니다! 이것은 며칠 동안 나에게 먹어 치웠다!

+1

이 코드가 모두 관련이 있습니까? TextView를 배치 할 때 CardView를 작성하는 코드와 노력을 보여주는 것만으로도 충분할 것입니다. – Reti43

+0

글쎄, 나는 ** 지구 ** 내가 틀렸다는 것을 모른다. 한 단계에서 어댑터에 문제가있을 수 있다고 생각했습니다. – wincinderith

+1

오류를 재생산하는 코드의 최소 버전을 생성하는 방법은 [mcve] (http://stackoverflow.com/help/mcve) 및 [sscce] (http://sscce.org/)를 참조하십시오. 당신이 직면하고있는 어려움. 전체 코드를 게시하고 모든 단일 행을 통과 할 것이라고 기대한다고해서 우리의 삶이 쉬워지는 것은 아닙니다. 어떤 사람들은 보여지는 노력의 부족을 감사하지 않을 수도 있습니다. 몇 가지 시도를 한 후에도 오류의 출처를 알 수 없지만 시도를 기록 할 수 있으므로 동일한 단계를 헛되이 반복하지는 않습니다. – Reti43

답변

1

약 3 시간 동안 재생 한 후 해결책을 찾았습니다! SquareCardViewonMeasure() 내부 레이아웃 경계의 크기가 조정되지 않는 문제가있었습니다. 다음은 내가 변경 한 내용입니다.

0

cardview에 사용중인 지원 라이브러리에 문제가 있습니다. 컴파일 된 sdk 버전과 지원 lib 버전은 동일해야합니다. 예를 들어

: build.gradle에서

compileSdkVersion (23)는 종속 관계에있는

당신은

컴파일 'com.android.support:cardview-v7:23.0.0'

를 사용하는 경우는

build.gradle의 버전을 모두 확인하십시오.

추신 : 당신이 지원 LIB 버전을 사용하는 경우 24 스튜디오는 당신에게 다음과 같은

"는 compilesdkversion보다 다른 버전 (24)을 사용하지 않아야이 지원 라이브러리 (23)"

최고의 행운을 제안!

+0

의견이있는 이유를 이미 확인했습니다. be ... "이것은 질문에 답하는 실제 시도가 아닌 것 같습니다. –

관련 문제