Android Lollipop(5.0)で使用されている新しいMaterial Designを使用してアプリを作成しています。
私は以下のガイドを使っています。
ツールバーを作成した後、次のエラーが表示されます。
アプリは携帯電話やエミュレータではうまく機能しますが、Android Studioのレイアウトデザイナーはレイアウトを正しく表示しません。
ここにいくつかの画像があります:
My_awesome_toolbar.xmlレイアウトプレビューのエラー
Activity_my.xmlレイアウトプレビューのエラー
ファイルのxmlコード:
my_awesome_toolbar.xml:
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.Toolbar
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/my_awesome_toolbar"
Android:layout_height="wrap_content"
Android:layout_width="match_parent"
Android:minHeight="?attr/actionBarSize"
Android:background="?attr/colorPrimary" />
activity_my.xml:
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:id="@+id/root"
tools:context="com.myapp.test.MyActivity"
Android:orientation="horizontal">
<include
Android:id="@+id/toolbar"
layout="@layout/my_awesome_toolbar"
/>
<!-- Rest of layout -->
</RelativeLayout>
MyActivity.Java:
package com.myapp.test;
import Android.os.Bundle;
import Android.support.v7.app.ActionBarActivity;
import Android.support.v7.widget.Toolbar;
import Android.view.Menu;
import Android.view.MenuItem;
public class MyActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
スタイルのXMLコード(values/styles.xml):
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/blue</item>
<item name="colorPrimaryDark">@color/dark_blue</item>
<item name="actionOverflowButtonStyle">@style/AppTheme.OverflowButtonStyle</item>
</style>
<!-- Style Title -->
<style name="Title">
<item name="Android:textColor">@color/white</item>
<item name="Android:textStyle">bold</item>
<item name="Android:textSize">16sp</item>
</style>
<style name="AppTheme.OverflowButtonStyle" parent="Widget.AppCompat.ActionButton.Overflow">
<item name="Android:src">@drawable/overflow_icon</item>
</style>
</resources>
現時点で私はAndroid Studio Beta 0.8.9を使用しています
Android Studio(またはIntelliJ IDEA)の場合、
プロジェクトですべて問題ないように見えても、すべてのレイアウトでエラーがまだ発生している場合は、「キャッシュを無効にして再起動」を試してください。
Android Studioがすべてのキャッシュとインデックスの作成を完了するまで待ちます。
私はこれからres/values/styles.xmlファイルを変更しました:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
これに:
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
これで問題は解決しました。
@gberoが言ったことをやったので、Studioが使用するAndroidバージョン番号を22から17に変更しました。
下位互換性を使用してAndroid ver 22のビルドを行いますが、ターゲット17(正しく言えばidk、まだこのアプリを見つけようとしています)をターゲットにして、下位互換性をトリガーしました。 Android.support.v7.*
とは何ですか。これはおそらく、レンダリングコードのバグです。キャッシュを無効にした直後にレンダリングが機能しなかったため、上記のようにキャッシュをクリアする必要があるかどうかはわかりませんが、レンダリングするバージョンを変更した後に動作し始めました。バージョン22に戻すとレンダリングが中断し、17に戻すと再び動作します。
私は自分自身に答える場合は申し訳ありませんが、最後に、私の問題の解決策はカナリーチャンネルによって新しいバージョン0.8.14にAndroid Studioを更新することでした: http://tools.Android.com/recent/ =
更新後、問題は解決しました。
私はこの問題を将来この問題を抱えている人々のためにここに残します。
私は@ang_leeが言ったことをしました、そしてまた私はアプリのテーマスタイルにこの行を追加しました:
<item name="windowActionBar">false</item>
私はバージョン26.0.1を使用しています。
com.Android.support:design:26.0.1
com.Android.support:appcompat-v7:26.0.1
構築ツール:
buildToolsVersion "26.0.1"
それは私のために働く
私は自分のプロジェクトをprevewしたいとき私は私のAndroid Studioの画面上で同じエラーがありました。私はこの方法で問題を解決します。
1 - 私は22から21にバージョンを変更します。しかし、私がバージョン22に戻すと、レンダリングが中断され、21に戻すとそれは再び機能します。ありがとうございます@Overloaded_Operator
私は自分のAndroid Studioをアップデートしたが動かなかった。ありがとうございます@ Salvuccio96
上記のどれも私のために働きませんでした、私は23から25.3.1へ私のアプリgradleファイルのappCompat - v7バージョンを更新しました。それが私のために働くのを助けました
App/res/valuesフォルダーにstyles.xmlを見つけます。
スタイルの親属性に "Base"がない可能性があります。それは始まるべきです
<style name="AppTheme" parent="Base.Theme.AppCompat...
上記の解決策は役に立ちませんでした。私は このリンク から2つの最初のステップを試しました。私のためにうまくいった。しかし忘れないでください
import com.melnykov.fab.FloatingActionButton;
の代わりに
import Android.support.design.widget.FloatingActionButton;
mainActivity.Javaに
私の問題はstyles.xmlの変更によっても解決されました
<!-- Base application theme. -->
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
私は自分のアプリのアクティビティの一つで同じ問題を抱えていました、この問題の原因の一つはテーマエディタのテーマが 'styles.xml'で定義されたテーマと異なるかもしれないということです。テーマエディタのテーマの変更あなたの「Apptheme」またはあなたのカスタム定義されたテーマ(あなたが定義したならば)に。これをやって私の問題を修正しました。
私はAndroid Studio 2.3.3を使用します。 - Open styles.xml - Android Studioは右上に2つのオプションで通知を表示します。「エディタを開く」と「通知を隠す」です。 - [エディタを開く]をクリックします - テーマの親のドロップダウンの下にある[すべてのテーマを表示]をクリックします - AppCompatで始まるテーマを選択します...(私はAppComat.DayNightを使用しました)
注意:タイトルバーが消えた場合は、ActivityではなくAppCompatActivityを拡張する必要があります。
ではごきげんよう!