android - बच्चों के विचारों की संख्या()को लाइनरलेआउट कंटेनर को रद्द करने के बाद कहा नहीं गया




view calendar android-custom-view invalidate (2)

यदि लेआउट स्तर तय करने से, लेआउट स्तर पर invalidate() को कॉल किया जाता है, तो इसका पुन: निकाला जाना चाहिए। इसलिए बच्चे के विचारों पर ही invalidate() कॉल करता है, जो प्रभावित / गंदे हैं एक सेल में हुए परिवर्तनों में से कोई भी लेआउट पर दिखाई नहीं देता है, इसलिए लेआउट किसी भी बच्चे को अमान्य करने की आवश्यकता नहीं देखता है।

आपको इस दृश्य को स्वयं अमान्य कर दिया जाना चाहिए, जब उसे दोबारा तैयार करना होगा। आपके मामले में मैं setParamView विधि में setParamView को setParamView करने के लिए setParamView । जहाँ तक मैं कोड को समझता हूं, यह वह तरीका है जो कैलेंडर में एक दिन के रूप में एक कक्ष को सजाने के लिए जिम्मेदार है।

मैं एक कैलेंडर दृश्य लिख रहा हूँ.जब मैंने अगले महीने बटन दबाया, तो मैं mCalendarContainerLL.invalidate () कॉल करता हूं; लेकिन मेरे कस्टम विचारों को रेखांकित नहीं किया गया था। मेरे कस्टम दृश्य में ड्रेड विधि को नहीं बुलाया गया था।

Ps: अगर मैं सीधे सभी कैलेंडर सेल दृश्य को अमान्य करता हूँ। यह काम करता है। ऐसा क्यों हुआ ???

यहां कोड है:

private CalendarWidgetDayCell updateCalendarView() {

        CalendarWidgetDayCell dayCellSelected = null;
        boolean isSelected = false;

        final boolean isHasSelection = (mCalendarSelected.getTimeInMillis() != 0);

        final int selectedYear = mCalendarSelected.get(Calendar.YEAR);
        final int selectedMonth = mCalendarSelected.get(Calendar.MONTH);
        final int selectedDay = mCalendarSelected.get(Calendar.DAY_OF_MONTH);

        Calendar dateXOfCalendar = Calendar.getInstance();
        dateXOfCalendar.setTimeInMillis(mStartDateCurrentMonth.getTimeInMillis());

        Log.d(tag, "updateCalendarView cpt_func_ " + "mDayCellList.size(): " + mDayCellList.size());
        for (int i = 0; i < mDayCellList.size(); i++) {
            final int yearOfCellItem = dateXOfCalendar.get(Calendar.YEAR);
            final int monthOfCellItem = dateXOfCalendar.get(Calendar.MONTH);
            final int dayOfCellItem = dateXOfCalendar.get(Calendar.DAY_OF_MONTH);
            final int dayOfWeekOfCellItem = dateXOfCalendar.get(Calendar.DAY_OF_WEEK);
            CalendarWidgetDayCell dayCellItem = mDayCellList.get(i);

            boolean isToday = false;
            if (mCalendarToday.get(Calendar.YEAR) == yearOfCellItem) {
                if (mCalendarToday.get(Calendar.MONTH) == monthOfCellItem) {
                    if (mCalendarToday.get(Calendar.DAY_OF_MONTH) == dayOfCellItem) {
                        isToday = true;
                    }
                }
            }

            // check holiday
            boolean isHoliday = false;
            if ((dayOfWeekOfCellItem == Calendar.SATURDAY) || (dayOfWeekOfCellItem == Calendar.SUNDAY))
                isHoliday = true;
            if ((monthOfCellItem == Calendar.JANUARY) && (dayOfCellItem == 1))
                isHoliday = true;

            isSelected = false;
            if (isHasSelection) {
                if ((selectedDay == dayOfCellItem) && (selectedMonth == monthOfCellItem)
                        && (selectedYear == yearOfCellItem)) {
                    isSelected = true;
                }
            }
            dayCellItem.setSelected(isSelected);

            boolean hasRecord = false;

            if (isSelected)
                dayCellSelected = dayCellItem;

            dayCellItem.setViewParam(yearOfCellItem, monthOfCellItem, dayOfCellItem, isToday, isHoliday,
                    mCurrentMonthInCalendar, hasRecord);

            dayCellItem.invalidate();//It works well.
            dateXOfCalendar.add(Calendar.DAY_OF_MONTH, 1);
        }

        // mCalendarContainerLL.invalidate();//This is not working as expected.
        return dayCellSelected;
    }

V-Play (v-play.net) क्यूटी / क्यूएमएल पर आधारित एक क्रॉस-प्लेटफॉर्म गेम इंजन है जिसमें कई डिस्प्ले रेज़ोल्यूशन और पहलू अनुपात, एनिमेशन, कण, भौतिकी, बहु स्पर्श, को संभालने के लिए कई उपयोगी वी-प्ले क्यूएमएल गेम घटक हैं। इशारे, पथ खोज और अधिक। एपीआई संदर्भ इंजन कोर मूल सी ++ में लिखा गया है, जो कस्टम रेंडरर के साथ संयुक्त है, गेम सभी उपकरणों में 60fps के ठोस प्रदर्शन तक पहुंचते हैं।

वी-प्ले टॉवर रक्षा, प्लेटफ़ॉर्म गेम या पहेली गेम जैसे सबसे सफल गेम शैलियों के लिए उपयोग में आसान गेम टेम्पलेट्स के साथ आता है।

यदि आप वी-प्ले के साथ किए गए गेम के बारे में उत्सुक हैं, तो यहां उनका त्वरित चयन है:

(अस्वीकरण: मैं वी-प्ले के पीछे लोगों में से एक हूं)







android view calendar android-custom-view invalidate