0

特に を表示/非表示にしようとしてImageViewFrameLayoutます。同時に、id recents_linear_layoutImageViewを ( とは逆に)非表示または表示するつもりですLinearLayout

<com.android.systemui.recent.RecentsPanelView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recents_root"
android:layout_height="match_parent"
android:layout_width="match_parent">

<FrameLayout
    android:id="@+id/recents_bg_protect"
    android:background="@drawable/status_bar_recents_background"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentBottom="true"
    android:clipToPadding="false"
    android:clipChildren="false">

    <com.android.systemui.recent.RecentsHorizontalScrollView android:id="@+id/recents_container"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginRight="@dimen/status_bar_recents_right_glow_margin"
        android:divider="@null"
        android:stackFromBottom="true"
        android:fadingEdge="horizontal"
        android:scrollbars="none"
        android:fadingEdgeLength="@dimen/status_bar_recents_fading_edge_length"
        android:layout_gravity="bottom|left"
        android:orientation="horizontal"
        android:clipToPadding="false"
        android:clipChildren="false">

        <LinearLayout android:id="@+id/recents_linear_layout"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:clipToPadding="false"
            android:clipChildren="false">
        </LinearLayout>


    </com.android.systemui.recent.RecentsHorizontalScrollView>

**<ImageView android:id="@+id/landscape"
    android:gravity="center"
    android:layout_gravity="center"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="0.0dip"
    android:src="@drawable/landscape_img"
    android:visibility="gone" />**

</FrameLayout>

<include layout="@layout/status_bar_no_recent_apps"
    android:id="@+id/recents_no_apps"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="invisible" />

</com.android.systemui.recent.RecentsPanelView>

私のJavaコードは、をNullPointerException見つけることができないため、をスローしますImageView(これはで実行されているためcom.android.systemui.recent.RecentsHorizontalScrollViewです。これはコードです

    mLinearLayout = (LinearLayout) findViewById(R.id.recents_linear_layout);
    mLinearLayout.setVisibility(mRecent ? LinearLayout.GONE : LinearLayout.VISIBLE);
mLandScape = (ImageView) findViewById(R.id.landscape);
mLandScape.setVisibility(mRecent ? View.VISIBLE : View.GONE);

前もって感謝します。

4

2 に答える 2

0

((Activity)getContext()).findViewById(R.id.landscape) を使用できますが、コンテキストがアクティビティであるという保証はないため、使用を避ける必要があります。このビュー内の一部のビューを非表示にしようとしている理由がわかりません。これが活動の責任だと思います。コールバック メソッドを使用してインターフェイスを作成し、イベントについてアクティビティに通知してから、画像ビューを非表示にする必要があります。

于 2012-04-22T19:32:10.840 に答える
0

FIXED 修正は、古いレイアウトと ImageView を子として持つ外部レイアウト コンテナーを作成していました。

    <com.android.systemui.recent.RecentsHorizontalScrollView android:id="@+id/recents_container"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginRight="@dimen/status_bar_recents_right_glow_margin"
        android:divider="@null"
        android:stackFromBottom="true"
        android:fadingEdge="horizontal"
        android:scrollbars="none"
        android:fadingEdgeLength="@dimen/status_bar_recents_fading_edge_length"
        android:layout_gravity="bottom|left"
        android:orientation="horizontal"
        android:clipToPadding="false"
        android:clipChildren="false">

        <LinearLayout android:id="@+id/child_container"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:clipToPadding="false"
            android:clipChildren="false">

            <LinearLayout android:id="@+id/recents_linear_layout"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:orientation="horizontal"
                android:clipToPadding="false"
                android:clipChildren="false" />

        <ImageView android:id="@+id/sense_landscape"
        android:gravity="center"
        android:layout_gravity="center"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="0.0dip"
        android:src="@drawable/sense_landscape"
        android:visibility="visible" />



        </LinearLayout>


    </com.android.systemui.recent.RecentsHorizontalScrollView>
于 2012-04-23T13:41:00.007 に答える