2017-12-07 21 views
0

CustomEditText는 AppCompatEditText를 확장하고 https://github.com/vanniktech/Emoji 라이브러리를 파생시키는 EmojiEditText를 확장했습니다.AppCompatEditText 스타일 조정

CustomEditText에 대해 ComposeEditText 스타일을 사용했습니다. 하지만이 스타일을 추가하면 앱이 다운됩니다. 도와주세요.

내 글고 스타일 : XML에

 <style name="ComposeEditText" parent="@style/Widget.AppCompat.EditText"> 
     <item name="android:padding">2dp</item> 
     <item name="android:background">@null</item> 
     <item name="android:maxLines">4</item> 
     <item name="android:maxLength">2000</item> 
     <item name="android:capitalize">sentences</item> 
     <item name="android:autoText">true</item> 
     <item name="android:gravity">center_vertical</item> 
     <item name="android:imeOptions">flagNoEnterAction</item> 
     <item name="android:inputType">textAutoCorrect|textCapSentences|textMultiLine</item> 
     </style> 

내 글고 :

코드
  <com.android.android.util.view.CustomEditText 
      android:id="@+id/editText" 
      style="@style/ComposeEditText" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      app:emojiSize="@dimen/emojiSize" /> 

:

public class CustomEditText extends EmojiEditText { 

    public CustomEditText(Context context) { 
     super(context); 
    } 

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

    @SuppressLint("DrawAllocation") 
    @Override 
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) { 
     super.onLayout(changed, left, top, right, bottom); 
    } 
} 

오류 로그 :

java.lang.RuntimeException: Unable to start activity 
     ComponentInfo{com.android.android/com.android.android.conversation.a.PRofile}: 
    android.view.InflateException: Binary XML file line #0: 
     Binary XML file line #0: Error inflating class com.android.android.util.view.CustomEditText 
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988) 
                       at android.app.ActivityThread.-wrap14(ActivityThread.java) 
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631) 
                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                       at android.os.Looper.loop(Looper.java:154) 
                       at android.app.ActivityThread.main(ActivityThread.java:6682) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 
                       Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class com.android.android.util.view.CustomEditText 
                       Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class com.android.android.util.view.CustomEditText 
                       Caused by: java.lang.reflect.InvocationTargetException 
+0

왜 당신이 당신의 스타일'inputType'에서 여러 옵션을합니까 당신의 도움이

대신 사용

<style name="ComposeEditText" parent="@style/Widget.AppCompat.EditText"> 

의 주셔서 감사합니다? –

+0

모두 필요합니다 :) – propoLis

+0

및 emojiSize를 사용하여 제거해 보았습니까? 기본 edittext 클래스에는 이와 같은 속성이 없다고 생각하기 때문에 –

답변

0

"@ 스타일 /"을 제거하고 해결되었습니다.

<style name="ComposeEditText" parent="Widget.AppCompat.EditText"> 
1

CustomEditTextEmojiEditText 인 경우 스타일의 parent을 EmojiEditText 스타일로 설정하십시오. 문제는 귀하의 스타일이 잘못된 스타일로부터 이어 나가는 것입니다.