Андроид: фоновое изображение размер на клавиатуре выскочить

Я разрабатываю приложение, в котором фоновое изображение сделать сокращения на всплывающем клавиатуры. Мой .XML имеет следующий вид :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:facebook="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background" >

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            /**
              Other stuff 
            */

        </RelativeLayout>
    </ScrollView>
</RelativeLayout>

Я искал в Google и нашел, что добавить

android:windowSoftInputMode="stateVisible|adjustPan"

в мой файл манифеста. Но его не использовать.

Редактировать :

Мой макет перед ключевая доска выскочить выглядит так :

И после того как выскочит как:

Пожалуйста, проверьте разница в фоновое изображение. В Изображение 1 изображение в размер и на рис. 2 фоновое изображение термоусадочная-Эд. Мне нужен футер и фон сделать сдвиг вверх на клавиатуре всплывающее окно.

Что я пропускаю или делаю неправильно, пожалуйста, предложите мне.

Комментарии к вопросу (4)

Просто использовать в методе onCreate()` этот код:

protected void onCreate(Bundle savedInstanceState) {
...   
 getWindow().setBackgroundDrawableResource(R.drawable.your_image_resource);
...
}

и исключить эту строку в XML:

android:background="@drawable/background"

Подробнее на:

Комментарии (7)

Я сталкивался когда-то подобный вопрос, моя была решена с помощью указанных ниже свойств в манифесте использовать его там, где ваша деятельность была объявлена.

 android:windowSoftInputMode="stateHidden|adjustResize|adjustPan"
Комментарии (4)

Ок, если я правильно понял ваш вопрос правильно, вы хотите, чтобы макет с фоном и представление ScrollView. И когда softkeyboard всплывает, вы хотите изменить представление ScrollView, но сохранить фон в полном размере в порядке? если это's то, что вы хотите, чем я, возможно, нашли решение этой проблемы:

Что вы можете сделать 2 деятельности.

Мероприятие 1:

public class StartActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent StartApp = new Intent(this, DialogActivity.class);
    startActivity(StartApp);         // Launch your official (dialog) Activity

    setContentView(R.layout.start);  // your layout with only the background 
    }
}

Действие activity2:

public class DialogActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);  // get rid of dimming
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);  //get rid of title bar (if you want)

    setContentView(R.layout.dialog);  //Dialog Layout with scrollview and stuff

    Drawable d = new ColorDrawable(Color.BLACK);  //make dialog transparent
    d.setAlpha(0);
    getWindow().setBackgroundDrawable(d);
    }
}

макет начального экрана:

  //your background

макет диалогового окна:











AndroidManifest.xml

деятельность "старт":

android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

диалог активность

android:theme="@android:style/Theme.Dialog"
android:windowSoftInputMode="adjustResize"
android:excludeFromRecents="true"

Редактировать: Для завершения мероприятий одновременно использовать следующие где-то внутри вашего DialogActivity (пример: переопределить назадВ):

@Override
public void onBackPressed() {
    Intent intent = new Intent(getApplicationContext(), StartActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.putExtra("EXIT", true);
    startActivity(intent);
}

а в методе onCreate () из StartActivity:

if (getIntent().getBooleanExtra("EXIT", false)) {
    finish();
}
else {
    Intent StartApp = new Intent(this, TestActivity.class);
    startActivity(StartApp);
}

Скриншоты!

Нормальный

Щелкнул поле полей EditText

После того, как прокрутил (PS: я поставил текстовое поле внутри представление ScrollView thats, почему его нет ;) )

Я надеюсь, что это поможет вашему выходит ;)

Комментарии (0)

У меня был тот же вопрос.

Добавьте свой внешний макет фона внутри метода onCreate как показано ниже

getWindow().setBackgroundDrawableResource(R.drawable.login_bg);

и добавить ваш внешний макет, как


Добавить в Android:layout_weight="и 1"` В для наружной разметки и Дон'т установить фон в XML-файл Я думаю, что это помогает кто-то

Комментарии (0)

Эй можете ли вы пожалуйста, попробуйте добавить это

android:isScrollContainer="false" 

в представление ScrollView. Она решила раз моя проблема. Тоже может помочь U.

Кроме того, добавьте это к вашей деятельности в manifest.xml

android:windowSoftInputMode="adjustPan"

Надеюсь, что это помогает..!! :)

Комментарии (1)

Вы должны двигаться андроид:фон=то"@холст/фон" в в книги выше представление ScrollView. Когда клавиатура всплывает это эффективно делает экран меньше, и изображение в качестве фона у вас нет контроля над тем, как он изменяется/обрезанные. Поэтому, если вы хотите, чтобы изображение в полную ширину, но сохранить соотношение ascpect попробуйте это:







            /**
            Other stuff
            */


Вы можете попробовать разные системы Android:scaleType значения` для того чтобы достигнуть желаемого эффекта. Если вы хотите, чтобы картинка была обрезана сверху, а не по умолчанию средний урожай, смотрите здесь о том, как добиться этого, или попробуйте использовать это библиотека

Комментарии (0)

Проверьте этот ответ, основной фокус-это вам не'т установить фон для макета, но к окну. Это может быть сделано от деятельности с `getWindow().setBackgroundDrawable (), или вы можете установить его в теме с вашей деятельностью.

Комментарии (1)

Вместо андроид:windowSoftInputMode="и что quot stateVisible|adjustPan&;, вы должны изменить для Андроид:windowSoftInputMode="и stateVisible|adjustResize" в. Он работал для меня.

Комментарии (2)

Использовать функцией ScrollView как родительской. Она будет прокручиваться вверх и вниз автоматически при открытии и закрытии клавиатуры.

Комментарии (0)

Почему Дон'т Вы делаете, как это





Комментарии (0)

Вы должны использовать опцию adjustResize для windowSoftInputMode установка по активность в файл AndroidManifest.xml.

Комментарии (0)

я использую ниже вид родителя и его работает нормально для меня:

<?xml version="1.0" encoding="utf-8"?>




Комментарии (2)