0

これは私のコードです

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="match_parent" >

<ImageView
    android:id="@+id/bgImage"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:contentDescription="@string/todo"
    android:scaleType="fitXY"
    android:src="@drawable/default_wallpaper" />

<LinearLayout
    android:id="@+id/mainLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/title"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/in"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="@android:color/transparent"
        android:cacheColorHint="@android:color/transparent"
        android:divider="@android:color/transparent"
        android:stackFromBottom="true"
        android:transcriptMode="alwaysScroll" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/edit_text_out"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_gravity="bottom"
            android:layout_weight="1"
            android:inputType="none" />

        <Button
            android:id="@+id/button_send"
            android:layout_width="70dp"
            android:layout_height="fill_parent"
            android:text="@string/send"
            android:textSize="15sp"
            android:textStyle="bold" />
    </LinearLayout>
</LinearLayout>

</RelativeLayout>

EditTextこれでソフト​​キーボードをタップすると開きますが、ImageView縮んでいます。

マニフェストファイルで使用android:windowSoftInputMode="adjustPan"しましたが、これを使用するとアクティビティ全体が上に押し上げられますが、ImageViewをそのまま使用し、キーボードを開いたときにImageViewをアプリケーションのように上からではなく下から切り取りWhatsAppます。

どんな助けでも感謝します。ありがとうございました ..

4

3 に答える 3

2

私が適応させたカスタム ビュー - -は、同じアクティビティParallaxBackgroundのスクロールによって駆動される視差効果を持つ背景画像として機能するはずだったという同様の問題がありました。ViewPager

つまり、画面の幅よりもわずかに大きい幅の画像を表示するビューがあり、ユーザーが に沿ってスクロールするViewPagerと、画像ParallaxBackgroundも少しスクロールします。

私の場合、ViewPager の Fragments 内にいくつかの EditText があり、ユーザーがそれらをクリックすると、ソフト キーボードが表示され、ParallaxBackground (およびその結果として背景画像) がサイズ変更され、 「私の意志に反して」圧迫されます。 "。

だから私は 、とのためboolean isBackgroundに 2 つのを追加し、私のビューを次のように上書きしました:intfixedWidthfixedHeightonMeasure()

 @Override
 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {


    if(isBackground) 
    // If this is being used as a background and is supposed to occupy the whole screen...
    {
                    // force the View to have the specified dimensions
        setMeasuredDimension(fixedWidth, fixedHeight);
    }
    // ...aply default measures...
    else
    {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

 }

これが「美しい」解決策ではないことはわかっていますが、私の答えがあなたの問題に100%関連しているわけではありませんが、ImageViewクラスを拡張してonMeasure.

次に、onCreateメソッドisBackgroundで true に設定してfixedWidthfixedHeight測定した画面の幅と高さの値を指定できます。

于 2014-02-13T15:18:31.583 に答える
1

RelativeLayout親レイアウト ( ) を削除しLinearLayout、ダイアログ ボックスのみを含む を親にします! さらにandroid:windowSoftInputMode="stateVisible|adjustResize"AndroidManifest.xml

于 2013-02-28T13:09:50.267 に答える
0

XML からではなく、Java から背景画像を追加します。

getActivity().getWindow().setBackgroundDrawable(getResources().getDrawable(R.drawable.splash_image));

マニフェストに追加

android:windowSoftInputMode="adjustResize|stateHidden"

画面を開いたときにキーボードを非表示にする必要がある場合は、要件に従って非表示の状態を書き込むことができます

于 2018-10-22T12:36:48.790 に答える