SOとグーグルの両方について多くの調査を行った後、私が経験しているのとまったく同じ問題を抱えている人を見たことがないので、ここにあります:
最近、AndroidアプリでUI全体をやり直しました。ほとんどの場合、私は各画面に外観上の変更のみを加えました。それらは、期待どおりにEclipseのUIエディターに完全に表示されます。ただし、これを行った直後に、テストしたすべてのデバイスとエミュレーターの両方で2つの画面が正しくレイアウトされなくなりました。
さて、これら2つの画面の大きな問題は、ルートレベルのLinearLayoutがlayout_heightまたはlayout_widthのいずれかでfill_parentを実際に尊重していないように見えることでした。代わりにwrap_contentに設定されているかのように測定されているようです。画面の約70%しか占めません。これは、ルートのLinearLayout内の個々の要素をラップするのに十分です。画像を投稿しますが、新規ユーザーとしては投稿できません。
レイアウトは画面いっぱいに伸びていません。レイアウトのコードは次のとおりですが、LinearLayoutsにはTextViewとEditTextを含むものがいくつかあります。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FF000000"
android:orientation="vertical" >
<TextView
style="@style/sans.white.16.bold"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/edit_account" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<com.teamunify.ondeck.widget.TUTextView
style="@style/sans.white.14"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="@string/first_name" />
<com.teamunify.ondeck.widget.TUEditText
android:id="@+id/acc_editor_first"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:selectAllOnFocus="true"
android:singleLine="true" />
</LinearLayout>
ルートLinearLayoutは高さと幅の両方を埋める必要があると思います。私はこの同じレイアウトをアプリで何度も問題なく使用しました。(簡単に数えると、アプリで76のLinearLayoutsを使用しており、2つを除いてすべてが機能していることがわかりました。)
最初は、カスタムクラスの測定値が問題を引き起こしているのではないかと思ったので、すべてのプレーンなEditTextを使用するようにレイアウトを変更しましたが、変更はありませんでした。アクティビティを再確認しましたが、このxmlをロードする以外は何もしていません。だから、必死になって、私は次のようにレイアウトをやり直しました:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FF000000"
android:orientation="vertical" >
<TextView
style="@style/sans.white.16.bold"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center|top"
android:paddingTop="4dp"
android:text="@string/edit_account" />
</LinearLayout>
その後、「アカウントの編集」という単語が表示され、左上隅に黒い背景がマッシュされます。明らかに、LinearLayoutは親を埋めていません。
簡単に言うと、LinearLayoutが期待どおりに画面全体に表示されるようにこれを修正する方法を尋ねています。
私はなぜこれが起こっているのかについて完全に途方に暮れています、そして私は確かにSOの誰かがアイデアを持っていることを望んでいます。これで髪を抜くことができました!