android - कस्टम संपादनटैब सेटइनपुट टाईप के माध्यम से इसके इनपुट प्रकार को सेट करने के बाद काम नहीं कर रहा है




android-edittext android-custom-view (2)

आपको एंड्रॉइड सेट करना होगा: xml में अंक = "0123456789"। लेकिन मुझे नहीं पता कि क्यों ...

मैंने एक कस्टम EditText बनाया है, और इसके onDraw() फ़ंक्शन ओवरराइड किया है सब कुछ ठीक काम कर रहा था (मैं संपादन टेक्स्ट के अंदर कुछ भी खींच सकता था) जब तक मैं इस EditText लिए इनपुट विधि बदलना नहीं चाहता था और इस फ़ंक्शन को बुलाया है:

setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);

कोई बात नहीं कहां और कहां कहता हूं: इसे कहा जाने के बाद, मेरी कस्टम EditText गायब हो जाती है, और केवल मूल EditText दिखाया जाता है, हालांकि मेरे पर onDraw() फ़ंक्शन पर ओवरराइड किया जाता है, और इसके अंदर, इसके सुपर फ़ंक्शन को लागू किया जाता है (कोई बात नहीं बिल्कुल मैं इसे आह्वान करता हूं)।

मैंने यहां कुछ पदों में सुझाई गई पारदर्शी रंगों के साथ खेलने की कोशिश की है: बेस क्लास पर setBackgroundColor(Color.TRANSPARENT) , और paint.setColor(0x80FF0000) onDraw() फ़ंक्शन में मेरे Paint ऑब्जेक्ट के लिए Paint paint.setColor(0x80FF0000) भी लेकिन उनका कोई प्रभाव नहीं पड़ा।

संपादित करें: मैंने पाया है कि समस्या इनपुट प्रकार को सेट करने में झूठ नहीं है, लेकिन इनपुट टाइप और गुरुत्वाकर्षण की स्थापना एक साथ:

setGravity(Gravity.CENTER_HORIZONTAL);

अगर उनमें से कोई भी सेट नहीं है, तो मेरे कस्टम व्यू को उम्मीद के अनुसार तैयार किया गया है इसके अलावा (और क्या और भी अजीब है): Gravity.CENTER_VERTICAL साथ। Gravity.CENTER_VERTICAL में कोई समस्या नहीं है, केवल Gravity.CENTER_HORIZONTAL साथ। Gravity.CENTER_HORIZONTAL और Gravity.CENTER

ऐसा लगता है कि इन दोनों सेटिंग्स परस्पर अनन्य हैं क्या यह संभव हो सकता है?


अपने getScrollX() मूल्यों की जांच करें मुझे यकीन है आप 1000000 पिक्सल जैसे मान देखेंगे EditText इस अजीब तरह से अपने कैनवास का अनुवाद करता है, इसलिए आप वास्तव में उस पर चित्र कर रहे हैं, यह दृश्य क्लिप से दूर है

इसे हल करने के लिए बस स्क्रॉलएक्स वैल्यू को अपने ड्राइंग निर्देशांक में जोड़ें





android-inputtype