2015-09-06 6 views
6

LinearLayoutに基づいてカスタムビューを作成します。Android Studioが警告を表示します:ここでは要素のマージは許可されていません

<?xml version="1.0" encoding="utf-8"?> 
<layout xmlns:android="http://schemas.android.com/apk/res/android"> 
    <merge> 
     some staff here 
    </merge> 
</layout> 

Androidのメーカーは警告Element merge is not allowed hereが、アプリの動作を示しています。クラスは、レイアウトに私が持っている、のLinearLayoutクラスを拡張します。

どういうところが間違っていますか?

+0

:私はそこにバグを提出しました。 は、レイアウト自体だけでなく、すべてのレイアウトデータのタグです。ここを見てください:https://developer.android.com/tools/data-binding/guide.html#writing_expressions – tse

+0

私はそれが解決策だとは思わない。 ''タグをルートにして ''を入れると、レイアウトが許可されておらず、コンパイルが拒否されるという警告が表示されます。少なくとも、 ""がルートであるときにコンパイルされます。 –

答えて

-3

<merge>をファイルの最初のタグにします。

+3

できません。これを行うと、バインドファイルは生成されません。 – tse

-1

実際にdatabisnigのルートにレイアウトがあるので、ここではマージする必要はありません。 <マージ>タグはこちらです!

Use the <merge> Tag

The tag helps eliminate redundant view groups in your view hierarchy when including one layout within another

から:マージなどAndroid documentation

レイアウトを描画することが文句を言わないとシステムは、描画時にそれらを無視します。

レイアウトのAndroid Device Monitorで階層表示でレイアウトを追跡したことを承認するには、マージタグと同じ仕事をすることを意味する存在しません。あなたは自分でそれをチェックすることができます!

希望することがあります。

+0

これを試してこのエラーが出ました。 '' Error:1つのレイアウト要素と1つのデータ要素だけが許されています。 /Users/davethomas/dev*****.t.xmlには3'''があります。データ要素以外のレイアウトには、複数の要素を配置することはできません。 –

+0

が真です。すべてのコンテンツを1つのレイアウトで設定する必要があります。レイアウト –

1

私はそれがAndroidスタジオの不具合だと信じています。でも、公式ドキュメントはlayoutの直接の子としてmergeを持っていますhttps://developer.android.com/topic/libraries/data-binding/index.html

編集:私は理解したようルートタグとして を使用し、 https://code.google.com/p/android/issues/detail?id=286406&thanks=286406&ts=1490873944

+0

__itはサポートされていません – Shujito

+1

@ Shujitoあなたはあなたのソースを共有していただけますか? 「データバインディングはマージ要素の直接の子としてのインクルードをサポートしていません。」と書かれています。 つまり、の子ではありません。 の子であるについて何も言わない。 何か不足していますか?どうか明らかにしてください。 – mbonnin

+0

試しましたか? – Shujito

関連する問題