layout_weight = 0のAndroidレイアウトwrap_contentは表示されません

ジェイコブ・ビショフ

埋め込まれたグーグルマップフラグメントとマップの下の選択されたマーカーに関するいくつかの情報を使用してレイアウトを作成しようとしています。地図の下の情報は、必要なスペースだけを占め、残りのスペースを地図に提供したいと思います。

私が理解している限り、layout_weight与えられた値に比例して、さまざまなウィジェットに余分なスペースを割り当てます。したがって、が付いたウィジェットがありlayout_weight = 1layout_weight = 0最初のウィジェットが付い別のウィジェットがすべての余分なスペースを占有し、2番目のウィジェットが必要なものだけを占める場合。したがって、2番目のウィジェットを指定するとlayout_height = wrap_content、必要なものを取得する必要があります。ただし、実際にはそうではないようです。多くの値を変更しましたが、ウィジェットの1つがすべてのスペースを占めるか、どちらも占有しません。それらを正常に表示させることができた唯一の方法layout_heightは、2番目のウィジェットのを特定の値に設定することです。

これは問題の一部である可能性がありますがmap_frag_event_iconウィジェット、、、map_frag_personおよびをmap_frag_event_details動的に入力しています。


layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_margin="@dimen/fragment_margins"
    android:orientation="vertical">

    <fragment
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:map="http://schemas.android.com/apk/res-auto"
        android:id="@+id/map_frag_google_map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:paddingBottom="@dimen/fragment_margins"
        tools:context=".fragment.MapFragment"/>

    <LinearLayout
        android:id="@+id/map_frag_event_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:orientation="horizontal"
        android:gravity="center_vertical">

        <ImageView
            android:id="@+id/map_frag_event_icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="@dimen/icon_padding"
            android:layout_weight="0" />

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical"
            android:gravity="center_vertical">

            <TextView
                android:id="@+id/map_frag_event_person"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="@dimen/text_size"/>

            <TextView
                android:id="@+id/map_frag_event_details"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="@dimen/text_size"/>

        </LinearLayout>

    </LinearLayout>

</LinearLayout>

strings.xml

<resources>
    <string name="app_name">Family Map</string>
    <string name="title_activity_maps">Map</string>

    <dimen name="fragment_margins">8dp</dimen>
    <dimen name="horizontal_layout_padding">8dp</dimen>
    <dimen name="vertical_layout_padding">4dp</dimen>
    <dimen name="icon_size">48sp</dimen>
    <dimen name="icon_padding">8dp</dimen>
    <dimen name="text_size">20sp</dimen>
    <dimen name="small_text_size">14sp</dimen>
    <dimen name="large_text_size">24sp</dimen>

    <dimen name="map_event_layout_height">120sp</dimen>
    <dimen name="map_event_icon_size">40sp</dimen>

</resources>

編集

これが私が探している一般的なデザインですが、テキストの空白をできるだけ小さくし、テキストサイズを変更する設定を作成して、下部の空白を動的にする必要があります。

可能であれば、解決策とともに何が起こっているのかを説明してください。

ジェイコブ・ビショフ

投稿した元のコードに2つの問題が見つかりました。最初のテストでいつ追加したかはわかりませんが、2つの致命的なエラーがありました。LinearLayout私が持っていたルートでlayout_height = "0dp"、それはあるべきlayout_height = "match_parent"でした。そして、LinearLayoutその中にはTextViews、私が持っlayout_height = "match_parent"ていたはずの2つが含まれていましたlayout_height = "wrap_content"

これらの2つのエラーが修正されたので、削除に関する@MuhammadMuzammilSharifの元のコメントは機能しlayout_weight = "0"ました。


layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="@dimen/fragment_margins"
    android:orientation="vertical">

    <fragment
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:map="http://schemas.android.com/apk/res-auto"
        android:id="@+id/map_frag_google_map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:paddingBottom="@dimen/fragment_margins"
        tools:context=".fragment.MapFragment"/>

    <LinearLayout
        android:id="@+id/map_frag_event_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center_vertical">

        <ImageView
            android:id="@+id/map_frag_event_icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="@dimen/icon_padding"/>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="vertical"
            android:gravity="center_vertical">

            <TextView
                android:id="@+id/map_frag_event_person"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="@dimen/text_size"/>

            <TextView
                android:id="@+id/map_frag_event_details"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="@dimen/text_size"/>

        </LinearLayout>

    </LinearLayout>

</LinearLayout>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

さまざまなレイアウトタイプのlayout_weight

分類Dev

画面にコンテンツが表示されず、layout_weightを使用せずにwrap_contentを使用する

分類Dev

Androidはlayout_weightをverticalLinearLayoutのwidthに設定しました

分類Dev

weightとlayout_weightを理解すると、layout_weightが大きいほど、レイアウト内で縮小します。

分類Dev

layout_weightはどのように機能しますか?

分類Dev

android:layout_weightはどういう意味ですか?

分類Dev

LinearLayout内のImageViewは、LinearLayoutの「android:layout_weight」の場合に表示されません

分類Dev

LinearLayout内のImageViewは、LinearLayoutの「android:layout_weight」の場合に表示されません

分類Dev

線形レイアウトでlayout_weightを修正する方法は?

分類Dev

Android:layout_weightがButtonおよびLinearLayoutで機能しない

分類Dev

プログラムでlayout_weightを設定する方法は?

分類Dev

layout_weightをhorizontalとして定義しますか?

分類Dev

レイアウトにビューを追加するとlayout_weightが変更されます(Android)

分類Dev

LinearLayoutのフラグメントは、layout_weightプロパティがないと表示されません

分類Dev

`layout_weight`と` maxWidth`を備えた柔軟な水平レイアウト

分類Dev

RecyclerViewアイテムlayout_weight、サイズが更新されない

分類Dev

相対レイアウトのレイアウトパラメータが無効です:layout_weight

分類Dev

layout_weight と weightSum が機能しないのはなぜですか?

分類Dev

layout_weightを使用したtextviewの自動水平スクロール

分類Dev

RecyclerView内のアイテムのlayout_weightとlayout_gravityが機能しない

分類Dev

画面を2つの等しい部分に分割し、layout_weightを設定できません

分類Dev

RecyclerViewアイテムで垂直方向と水平方向のlayout_weightを同時に作成する方法

分類Dev

layout_weightを使用して、2つのLinearLayoutの高さが同じであるが機能しない

分類Dev

Viewのlayout_weightの効果がTextViewと異なる動作をするのはなぜですか?

分類Dev

コードからlayout_weight属性を動的に設定するにはどうすればよいですか?

分類Dev

layout_weightを使用してLinearLayoutのピクセル単位で高さを取得する方法

分類Dev

同じlayout_weightがAndroidImageButtonとButtonの幅を変えるのはなぜですか?

分類Dev

android:layout_weightが向きの変更時に正しいレイアウトから値を選択しない

分類Dev

layout_weightを使用して幅と高さ[正方形]のサイズを等しくするにはどうすればよいですか?

Related 関連記事

  1. 1

    さまざまなレイアウトタイプのlayout_weight

  2. 2

    画面にコンテンツが表示されず、layout_weightを使用せずにwrap_contentを使用する

  3. 3

    Androidはlayout_weightをverticalLinearLayoutのwidthに設定しました

  4. 4

    weightとlayout_weightを理解すると、layout_weightが大きいほど、レイアウト内で縮小します。

  5. 5

    layout_weightはどのように機能しますか?

  6. 6

    android:layout_weightはどういう意味ですか?

  7. 7

    LinearLayout内のImageViewは、LinearLayoutの「android:layout_weight」の場合に表示されません

  8. 8

    LinearLayout内のImageViewは、LinearLayoutの「android:layout_weight」の場合に表示されません

  9. 9

    線形レイアウトでlayout_weightを修正する方法は?

  10. 10

    Android:layout_weightがButtonおよびLinearLayoutで機能しない

  11. 11

    プログラムでlayout_weightを設定する方法は?

  12. 12

    layout_weightをhorizontalとして定義しますか?

  13. 13

    レイアウトにビューを追加するとlayout_weightが変更されます(Android)

  14. 14

    LinearLayoutのフラグメントは、layout_weightプロパティがないと表示されません

  15. 15

    `layout_weight`と` maxWidth`を備えた柔軟な水平レイアウト

  16. 16

    RecyclerViewアイテムlayout_weight、サイズが更新されない

  17. 17

    相対レイアウトのレイアウトパラメータが無効です:layout_weight

  18. 18

    layout_weight と weightSum が機能しないのはなぜですか?

  19. 19

    layout_weightを使用したtextviewの自動水平スクロール

  20. 20

    RecyclerView内のアイテムのlayout_weightとlayout_gravityが機能しない

  21. 21

    画面を2つの等しい部分に分割し、layout_weightを設定できません

  22. 22

    RecyclerViewアイテムで垂直方向と水平方向のlayout_weightを同時に作成する方法

  23. 23

    layout_weightを使用して、2つのLinearLayoutの高さが同じであるが機能しない

  24. 24

    Viewのlayout_weightの効果がTextViewと異なる動作をするのはなぜですか?

  25. 25

    コードからlayout_weight属性を動的に設定するにはどうすればよいですか?

  26. 26

    layout_weightを使用してLinearLayoutのピクセル単位で高さを取得する方法

  27. 27

    同じlayout_weightがAndroidImageButtonとButtonの幅を変えるのはなぜですか?

  28. 28

    android:layout_weightが向きの変更時に正しいレイアウトから値を選択しない

  29. 29

    layout_weightを使用して幅と高さ[正方形]のサイズを等しくするにはどうすればよいですか?

ホットタグ

アーカイブ