私はカスタムビューを持つXMLでframeLayoutを膨張活動、およびテキスト/ ImageViewsの数含むRelativeLayout持っている:「カスタムCanvasView」は、アンドロイド:兄弟ビューへのアクセス
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<my.package.name.CanvasView
android:id="@+id/canvas"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="24dp"
android:background="#66000000">
<TextView
android:id="@+id/toolbar_time"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:gravity="right|center_vertical"
android:textColor="#FFFFFFFF"
android:shadowColor="#000000"
android:shadowDx="1"
android:shadowDy="1"
android:shadowRadius="2" />
<ImageView
android:id="@+id/toolbar_notification"
android:layout_toLeftOf="@+id/toolbar_time"
android:layout_width="20dp"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:gravity="center|center_vertical" />
<TextView
android:id="@+id/toolbar_title"
android:layout_toLeftOf="@+id/toolbar_notification"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:gravity="left|center_vertical"
android:singleLine="true"
android:ellipsize="marquee"
android:textColor="#FFFFFFFF"
android:shadowColor="#000000"
android:shadowDx="1"
android:shadowDy="1"
android:shadowRadius="2" />
</RelativeLayout>
</FrameLayout>
を、Iいくつかの描画を行い、onTouchEvent()
などを傍受する。ビュー内のユーザのアクションに基づいて、TextViewのうちの1つ、特にtoolbar_notificationを更新したいと思う。 CanvasView自体でこれを行うのが最善ですが、TextViewは子ビューではないので、findViewById()
でアクセスすることはできません。
私はthis solutionを試しましたが、RuntimeExceptionが発生しました。原因は、android.view.InflateException:バイナリXMLファイル行#5:Error inflating class my.package.name.CanvasViewです。親ビューのプロパティ:
ViewGroup parentView = (ViewGroup) getParent();
parentView.getChildCount();
お勧めはありますか?
おかげで、
ポール
にそれを投げて、エラーを出しました。はい、私が探していたものは、魅力のように動作します。 –