2015-12-10 154 views
0

style.xml材料設計的EditText在片段

<resources> 

    <!-- Application theme. --> 
    <style name="generalnotitle" parent="Theme.AppCompat.Light"> 
     <item name="android:windowNoTitle">true</item> 

    </style> 


    <!-- for volley dailog theme --> 
    <style name="DialogTheme" parent="@android:style/Theme.Dialog"> 
     <item name="android:windowBackground">@android:color/transparent</item> 
     <item name="android:windowNoTitle">true</item> 
    </style> 

</resources> 

我的搖籃文件:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "com.ewh.calculations" 
     minSdkVersion 11 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:support-v4:23.1.1' 
    compile 'com.android.support:design:23.1.1' 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile project(':swipelistview') 
    compile 'com.github.sd6352051.niftydialogeffects:niftydialogeffects:1.0.0' 
} 

我的XML:

<android.support.design.widget.TextInputLayout 
       android:id="@+id/tl_firstName" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:errorEnabled="true"> 

       <android.support.v7.widget.AppCompatEditText 
        android:id="@+id/editText_firstName" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="First Name" 
        android:inputType="textPersonName" 
        android:singleLine="true" 
        android:text="dfdsf" 
        android:textColor="#000000" 
        android:textColorHint="#000000" /> 

      </android.support.design.widget.TextInputLayout> 

我想使用材質設計EDITTEXT的片段。我已經將AppCompatActivity擴展到了我的活動,其中加載了片段,但它給了我像下面的錯誤..

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ewh.calculations/com.ewh.calculations.ActivityOperation}: android.view.InflateException: Binary XML file line #15: Error inflating class <unknown> 
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
       at android.app.ActivityThread.access$800(ActivityThread.java:151) 
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
       at android.os.Handler.dispatchMessage(Handler.java:102) 
       at android.os.Looper.loop(Looper.java:135) 
       at android.app.ActivityThread.main(ActivityThread.java:5254) 
       at java.lang.reflect.Method.invoke(Native Method) 
       at java.lang.reflect.Method.invoke(Method.java:372) 
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library. 
      at android.support.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:34) 
      at android.support.design.widget.TextInputLayout.<init>(TextInputLayout.java:103) 
      at android.support.design.widget.TextInputLayout.<init>(TextInputLayout.java:96) 
            at java.lang.reflect.Constructor.newInstance(Native Method) 
            at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
            at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
            at fragments.FragmentNip.onCreate(FragmentNip.java:111) 
            at android.support.v4.app.Fragment.performCreate(Fragment.java:1939) 
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1029) 
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248) 
            at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) 
            at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) 
            at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:330) 
            at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547) 
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236) 
            at android.app.Activity.performStart(Activity.java:6006) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
            at android.app.ActivityThread.access$800(ActivityThread.java:151) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:135) 
            at android.app.ActivityThread.main(ActivityThread.java:5254) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:372) 

我的應用程序的主題是安卓主題=「@風格/ Theme.AppCompat.Light」 請幫我在此先感謝。

+0

附加你的gradle文件。 – RobinHood

+0

你好RobinHood我附加gradle文件請檢查。 –

+0

你好,我在你的應用程序中使用你的代碼並使用你的主題'Theme.AppCompat.Light'。它在我的應用程序中完全正常工作。 –

回答

1

嗨,大家好我找到解決方案 我剛剛更換線路

fragmentView =LayoutInflater.from(getActivity().getApplicationContext()).inflate(R.layout.fragment_lwnr, null); 

隨着

fragmentView = getActivity().getLayoutInflater().inflate(R.layout.fragment_lwnr, null); 

而在現在的片段材料設計的EditText工作的罰款。

+0

Thankks小費Pankaj。沒有人像你在這種情況下那樣清楚地界定了這個問題。充氣器不得不爲活動的應用主題充氣。謝啦 !! :) – udit

+0

歡迎udit :) –

0

Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library.

這意味着相同的活性沒有使用Theme.AppCompat主題。

+0

嗨羅賓我設置的主題我的活動一樣,我相信我用這個活動中,我加載fragmetns <活動 機器人:名字=「 ActivityOperation」 機器人:標籤=‘@字符串/ title_activity_operation_’ 機器人: theme =「@ style/Theme.AppCompat.Light」 android:screenOrientation =「portrait」> –

+0

顯示'Theme.AppCompat.Light'樣式。 – RobinHood

+0

我附上了style.xml。請檢查。 –

0

材質設計的EditText:

<android.support.design.widget.TextInputLayout 
      android:id="@+id/passwordwrapper" 
      android:layout_width="match_parent" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp" 
      android:layout_marginLeft="15dp" 
      android:layout_marginRight="15dp" 
      android:layout_height="wrap_content"> 

      <EditText 
       android:id="@+id/etpassword" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="textPassword" 
       android:hint="@string/login_password"/> 

     </android.support.design.widget.TextInputLayout> 

添加以下線路在style.xml文件:

<style name="MyMaterialTheme" parent="MyMaterialTheme.Base"> 

    </style> 

    <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 

    <style name="MyMaterialTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 

    <style name="MyMaterialTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 

並設置主題,以你的清單的應用標籤:

android:theme="@style/MyMaterialTheme" 

希望它會幫助你。