2012-05-08 22 views
3

私はこのログイン画面で作業しています。IMEが表示されたら、すべてのフィールド、テキスト、およびボタンのサイズを変更します。アンドロイド:windowSoftInputMode = "adjustResize"をandroidManifest.xmlで使用しましたが、まだ他の要素の下にいくつかの要素があります。ソフトキーボードの表示中にすべてのフィールドとテキストを表示する方法

TextViewの "Cadastre Agora"(id = cadastrar)が仮想キーボードで覆われていても問題はありません。しかし、いくつかの要素がある限り、私は少なくともEditTexts(とそのTextViews)とボタンを可視化しようとしています。

私は興味深いアプローチすることができ、この未回答の質問見つけます:http://stackoverflow.com/質問/ 6484024 /ソフトキーボードをキープ-1 - ビュー - 静止しばらく-移動他

おかげで助けるために! IMEのない

画面:IMEでhttp://imageshack.us/photo/my-images/138/semttulo2mr.png/

画面(TextView1が隠れてしまう):http://imageshack.us/photo/my-images/404/semttulo3xw.png/

stackoverflowのは、私のコードのフォーマットについて不平を言っているので、私はここでxmlファイルをアップロードします。https://rapidshare.com /files/1767398103/login.xml 2つ以上のリンクを投稿することはできません。なぜなら、それらにスペースを入れる理由です。

答えて

2

この場合、初期のレイアウト(キーボードが表示されていない)はすでに問題があると言います。純粋にログイン画面に見えるものを作成しているとすれば、すべてのコントロールを画面の上半分に配置し、ユーザーがそのページにアクセスしたときにキーボードを自動的に表示することは許容されます。これにより、ユーザーの操作がより迅速になり、柔軟なレイアウトを実現する必要がなくなります。

しかし、両方のビューでレイアウトが機能するようにするには、コントロール間でスペーシングを動的に変更する必要があります。例えば

:これが正しく機能するには

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width = "fill_parent" 
    android:layout_height = "fill_parent" 
    android:orientation="vertical" 
    > 
    <Space 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:layout_weight="1"> 
     <!-- Username Controls here --> 
    <Space 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:layout_weight="1"> 
     <!-- Password Controls here --> 
    <Space 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:layout_weight="1"> 
     <!-- Login Button here --> 
    <Space 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:layout_weight="1"> 
     <!-- TextView here --> 
    <Space 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:layout_weight="1"> 
</LinearLayout> 

、垂直パディングのすべては、テキストボックスのラベル間のパディングを除いて、あなたのコントロールから削除する必要があります。

+0

多くの「LinearLayout」を使用すると**パフォーマンスが悪い**です。 @Lucas、[Android IMEオプション](http://developer.android.com/resources/articles/on-screen-inputs.html)をチェックしてみてください – thepoosh

+0

本当に、単純なViewオブジェクトとしてうまくいくでしょう。 – Scott

+0

私にはうまくいきました:D私は以下のコードを貼り付けました。ありがとう@Scott。 –

関連する問題