2016-07-28 11 views
0

私はminSdkVersion 11、targetSdkVersion 23、およびコンパイル/ビルドツールバージョン23でアプリケーションを開発しています。アンドロイドバージョン5と6では、アプリケーションはうまく動作しますが、22より下のバージョンにアプリケーションをインストールすると、消えたり、色が変わったりしたら、これで助けてください。下のバージョンでアプリケーションを実行すると22いくつかのビューが変更されますか?

スタイルが

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="android:windowNoTitle">true</item> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 

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

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

</resources> 

は、Androidバージョン22のGradleの

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "com.khan.bilal.salamrides2" 
     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']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'com.android.support:design:23.4.0' 
    compile 'com.android.support:support-v4:23.4.0' 
} 

スクリーンショットを作成し、ファイル

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.khan.bilal.salamrides2"> 

<application 
android:allowBackup="true" 
android:icon="@mipmap/cc" 
android:label="@string/app_name" 
android:supportsRtl="true" 
android:theme="@style/AppTheme"> 

マニフェストファイル Working fine

(ファインワークス) 22以下のアンドロイドバージョンの

スクリーンショットあなたがAPI 21で導入された要素を使用して、あなたがAPI 11との電話でそれを表示しようとすると、確かに問題があるでしょう enter image description here

答えて

1

(問題が発生します) 。古いバージョンでは、表示している要素を区別する必要があります。要素の中には21より小さいAPIで使用されない要素がある場合、if-elseチェックを提供する必要があり、APIが21よりも低い場合は、 API 11でもサポートされていると思われる単純な要素を使用してください。

たとえば、TextInputLayoutを使用する場合は、ライブラリがAPI 22+をサポートしていますが、従来のEditTextを追加してテキストを入力します。両方をXMLに追加して非表示にし、次にユーザーのAPIに基づいていずれかを表示します。

また、このドキュメントをお読みください。

private void setUpActionBar() { 
// Make sure we're running on Honeycomb or higher to use ActionBar APIs 
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
    ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true); 
    } 
} 

幸運:)

+0

あなたは正しいですが、私はあなたが記述したいのか全く理解: https://developer.android.com/training/basics/supporting-devices/platforms.html

は特にこれは、あなたがそれを行うにはどのようにどのようなアイデアを得るのを助ける必要があります。あなたは私の問題を解決させました。 –

関連する問題