質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

4718閲覧

横幅が収まるようにxmlで定義したい

jun74

総合スコア338

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2019/08/17 14:23

前提・実現したいこと

該当のソースコードの「横幅が収まらずにイメージボタンのみ、はみ出す定義」で
イメージボタンもはみ出さないように定義したいが定義方法が分からない。
今は「横幅が収まる定義」で妥協しているが、収まらない定義を収まるようにしたい。

該当のソースコード

横幅が収まる定義

xml

1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:id="@+id/row_layout" 4 android:gravity="center_vertical" 5 android:orientation="horizontal" 6 android:layout_width="match_parent" 7 android:layout_height="wrap_content" 8 android:background="@drawable/listselector" 9 > 10 <Switch 11 android:id="@+id/sw_alarm" 12 android:layout_width="wrap_content" 13 android:layout_height="wrap_content" 14 android:layout_marginRight="15dp" 15 android:layout_marginLeft="5dp"/> 16 <LinearLayout 17 android:orientation="vertical" 18 android:layout_width="match_parent" 19 android:layout_height="wrap_content"> 20 <LinearLayout 21 android:orientation="horizontal" 22 android:gravity="center_vertical" 23 android:layout_width="match_parent" 24 android:layout_height="wrap_content"> 25 <TextView 26 android:id="@+id/t_time" 27 android:layout_width="wrap_content" 28 android:layout_height="wrap_content" 29 android:layout_marginTop="5dp" 30 android:layout_marginBottom="5dp" 31 android:layout_marginRight="10dp" 32 android:textSize="30sp" /> 33 <TextView 34 android:id="@+id/t_alarm_name" 35 android:maxLines="2" 36 android:scrollHorizontally="true" 37 android:ellipsize="end" 38 android:gravity="center_vertical|end" 39 android:layout_weight="1" 40 android:layout_width="0dp" 41 android:layout_height="wrap_content" 42 android:textSize="16sp" /> 43 <ImageButton 44 android:id="@+id/ib_menu" 45 android:src="@drawable/menu_icon" 46 android:layout_width="40dp" 47 android:layout_height="40dp" 48 android:scaleType="fitCenter" 49 android:background="@drawable/listselector" 50 /> 51 </LinearLayout> 52 <TextView 53 android:id="@+id/t_week" 54 android:text="月、火、水、木、金、土、日" 55 android:layout_width="wrap_content" 56 android:layout_height="wrap_content" 57 android:layout_marginTop="5dp" 58 android:layout_marginBottom="5dp" 59 android:layout_marginRight="10dp" 60 android:textSize="16sp" /> 61 </LinearLayout> 62</LinearLayout>

横幅が収まらずにイメージボタンのみ、はみ出す定義

xml

1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:id="@+id/row_layout" 4 android:gravity="center_vertical" 5 android:orientation="horizontal" 6 android:layout_width="match_parent" 7 android:layout_height="wrap_content" 8 android:background="@drawable/listselector" 9 > 10 <Switch 11 android:id="@+id/sw_alarm" 12 android:layout_width="wrap_content" 13 android:layout_height="wrap_content" 14 android:layout_marginRight="15dp" 15 android:layout_marginLeft="5dp"/> 16 <LinearLayout 17 android:orientation="vertical" 18 android:layout_width="match_parent" 19 android:layout_height="wrap_content"> 20 <LinearLayout 21 android:orientation="horizontal" 22 android:gravity="center_vertical" 23 android:layout_width="match_parent" 24 android:layout_height="wrap_content"> 25 <TextView 26 android:id="@+id/t_time" 27 android:layout_width="wrap_content" 28 android:layout_height="wrap_content" 29 android:layout_marginTop="5dp" 30 android:layout_marginBottom="5dp" 31 android:layout_marginRight="10dp" 32 android:textSize="30sp" /> 33 <TextView 34 android:id="@+id/t_alarm_name" 35 android:maxLines="2" 36 android:scrollHorizontally="true" 37 android:ellipsize="end" 38 android:gravity="center_vertical|end" 39 android:layout_weight="1" 40 android:layout_width="0dp" 41 android:layout_height="wrap_content" 42 android:textSize="16sp" /> 43 </LinearLayout> 44 <TextView 45 android:id="@+id/t_week" 46 android:text="月、火、水、木、金、土、日" 47 android:layout_width="wrap_content" 48 android:layout_height="wrap_content" 49 android:layout_marginTop="5dp" 50 android:layout_marginBottom="5dp" 51 android:layout_marginRight="10dp" 52 android:textSize="16sp" /> 53 </LinearLayout> 54 <ImageButton 55 android:id="@+id/ib_menu" 56 android:src="@drawable/menu_icon" 57 android:layout_width="40dp" 58 android:layout_height="40dp" 59 android:scaleType="fitCenter" 60 android:background="@drawable/listselector" 61 /> 62</LinearLayout>

補足情報(FW/ツールのバージョンなど)

Android Studio3.4
API14から28対象でターゲットは28

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

何故はみ出すかというと、LinearLayoutの子要素 (Switch, LinearLayout, ImageButton) のlayout_widthはそれぞれwrap_content, match_parent, 40dpとなっているので、
Switchが適当な大きさで置かれる→LinearLayoutが残り横幅いっぱい取ってしまう→ImageButtonを置こうにも、SwitchとLinearLayoutで埋まっている、というのが原因です。

どの割合で置くか決まっているなら、Switch, LinearLayoutに対し、layout_width="0dp" と layout_weight="x" (xは占める割合に置き換える) を設定してあげてください。
ImageButtonは40dpと決められているので、そのままでいいです。
こうすることで、サイズが決まっているImageButtonを覗いた余白を埋めるように大きさが設定されます。

投稿2019/08/18 01:16

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jun74

2019/08/18 02:15

はみ出すレイアウトの上から2つ目のLinearLayoutを以下のようにしたら、収まるようになりました。 ありがとうございました。 <LinearLayout android:orientation="vertical" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content">
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問