2017-12-07 14 views
0

私はCustomEditTextを拡張して、AppCompatEditTextを拡張してhttps://github.com/vanniktech/Emojiライブラリを派生させるEmojiEditTextを拡張します。AppCompatEditTextスタイルを調整する

私は、CustomEditTextのComposeEditTextスタイルを使用しました。しかし、このスタイルを追加すると、アプリがクラッシュしています。私を助けてください。

私のEditTextスタイル: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> 

マイのEditText:コード内

  <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

の? –

+0

私はそれらのすべてを必要とします:) – propoLis

+0

とemojiSizeの使用を削除してみましたか?私はデフォルトのedittextクラスにこのような属性がないと思うので、 –

答えて

0

"@ style /"を削除して解決しました。あなたの助け

いただきありがとうござい代わりに、あなたのスタイルでinputType` `で複数のオプションを持っていない理由

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

使用

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

CustomEditTextEmojiEditTextであることを確認して、スタイルのparentをEmojiEditTextのスタイルに設定してください。あなたのスタイルはあなたのスタイルが間違ったスタイルから継承していると思います。