2013-02-19 2 views
1

Нашел аналогичный вопрос, но не смог найти лучший ответ. Как решить проблему с макетами на дисплее клавиатуры и на экране ландшафта в Android? Ниже приведены изображения с проблемой. Initial layouotмакет искажает на дисплее клавиатуры и на экране пейзажа

Выше оригинальный макет

ниже после клавиатуры на экране

layout after keyboard

В 2 макета изображения после клавиатуры, Half кнопка отсутствует, и войдите в TextView отсутствует

Пожалуйста, помогите, как я должен это решить?

Вот 3-й снимок

layout with landscape screen

возникли проблемы ландшафтной ориентации отсутствует как кнопки и TextView и не доставалось свиток.

Вот код

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:gravity="center" 
android:background="@drawable/background" 
android:padding="20dp" 
android:paddingEnd="0dp" 
android:scrollbars="vertical|horizontal" 
> 

<ImageView 
    android:layout_height="wrap_content" 
    android:src="@drawable/logo" 
    /> 
<TableRow 
    android:id="@+id/tableRow2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal" 
    android:layout_marginTop="15dp"> 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="match_parent" 
     android:layout_height="40dp" 
     android:ems="10" 
     android:layout_weight="1" 
     android:hint="Full Name" 
     android:textSize="16sp" 
     android:background="@drawable/radius" 
     android:inputType="textPersonName" 
     android:paddingLeft="10dp" > 
     <requestFocus /> 
     </EditText> 

</TableRow> 
<TableRow 
    android:id="@+id/tableRow2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal" 
    > 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="match_parent" 
     android:layout_height="40dp" 
     android:ems="10" 
     android:layout_weight="1" 
     android:hint="Username" 
     android:textSize="16dp" 
     android:background="@drawable/radius" 
     android:paddingLeft="10dp" 
     android:layout_marginBottom="15dp" 
     android:layout_marginTop="15dp" 
     android:inputType="textPersonName" /> 

</TableRow> 
<TableRow 
    android:id="@+id/tableRow1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal" 
    > 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="match_parent" 
     android:layout_weight="1" 
     android:layout_height="40dp" 
     android:ems="10" 
     android:textSize="16sp" 
     android:hint="Email" 
     android:background="@drawable/radius" 
     android:inputType="textEmailAddress" 
     android:paddingLeft="10dp" 
     /> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRow2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal" 
    > 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="match_parent" 
     android:layout_height="40dp" 
     android:ems="10" 
     android:layout_weight="1" 
     android:hint="Password" 
     android:textSize="16sp" 
     android:layout_marginTop="15dp" 
     android:background="@drawable/radius" 
     android:inputType="textPassword" 
     android:paddingLeft="10dp"/> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRow3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="10dp" 
    android:layout_marginBottom="20dp" > 

    <Button 
     android:id="@+id/button1" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="fill_parent" 
     android:layout_height="40dp" 
     android:background="@drawable/button_bg" 
     android:text="Register" 
     android:layout_weight="1" 
     android:layout_margin="2dp" 
     android:textColor="#FFF"/> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRow4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="bottom|center" > 

    <TextView 
    android:id="@+id/signIn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal|bottom|center" 
    android:linksClickable="true" 
    android:textColor="#FFF" 
    android:text="Sign In to addressbook" 
    /> 

</TableRow> 


</TableLayout> 

Пожалуйста, помогите, я буду очень благодарен вам Привет @ Сэм может ответить на этот вопрос, пожалуйста

ответ

2

Если вы хотите его прокручивать, оберните весь макет в ScrollView. Как упоминает в своем ответе @AbdulHannan, вы можете определить предпочтительное поведение (resize vs pan) в AndroidManifest или программно в onCreate() (но не в обоих - оно избыточно). Если вы просто закроете его в ScrollView, Android будет автоматически использовать adjustResize для изменения размера вашего окна, предполагая, что ваш ScrollView будет обрабатывать изменение размера соответствующим образом и прокручивается для пользователя.

Предложение с боковой конструкцией: этот фон невероятно безвкусный; попробуйте сделать рисунок более тонким, если шаблон необходим.

+0

Scrollview не работает, я не знаю, почему, , и я не хочу, чтобы клавиатура была на контенте макета. Я хочу, чтобы макет как приложение facebook, как в приложении facebook, когда клавиатура появляется в целом, содержимое макета настраивается автоматически. и все еще возникают проблемы на экране ландшафта :( , пожалуйста, помогите –

0

в вашем Manifest.xml, Под вы <activity> включить это,
android:windowSoftInputMode="stateVisible|adjustResize|adjustPan
и в вашем onCreate(), добавьте это:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); если вы хотите т клавиатура должна скрываться всякий раз, когда создается Activity.

+0

Scrollview не работает, я не знаю, почему, и я не хочу, чтобы клавиатура была на контенте макета. Я хочу, чтобы макет как приложение facebook, как в приложении facebook, когда клавиатура появляется в целом, содержимое макета настраивается автоматически. и все еще возникают проблемы на ландшафтном экране :(пожалуйста, помогите –

Смежные вопросы