【android】リスト項目のmatch_parentが効かない
公開日:
:
android
下記のようなリスト項目用のレイアウトを用意して、リストの右端にチェックボックスを置くようにしたのですが、TextViewのweight=1が効かずに、テキストの末尾にチェックボックスがくっついてしまう現象が起こりました。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/txt_listitem" android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight="1" android:text="_title" /> <CheckBox android:id="@+id/cb_listitem" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
原因は。。。
原因はなんと親のListViewにありました。
下記が問題のListViewですが、間違いが分かりますか?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:orientation="vertical" > <ListView android:id="@+id/list" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" > </ListView> </LinearLayout>
正解は。。。
修正個所はandroid:layout_widthのパラメータでした。
× android:layout_width=”wrap_content”
○ android:layout_width=”match_parent”
TextViewに長い文字列が入るとListViewは自然と画面横幅いっぱいに広がります。
これがmatch_parentの様な動作となるので気づくのに時間がかかってしまいました。
にしても、親ListViewの設定の如何によってリスト項目内部の表示が変わるのはやめて欲しいですね。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:orientation="vertical" > <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" > </ListView> </LinearLayout>
以上
関連記事
-
【andoid】ViewPagerを使う
1. layout.xmlにViewPagerを配置 2. PagerAdapter.jav
-
【android】 APIバージョンによる動作の違い
「最近使用したアプリケーション」からの起動 2.x系 -> onNewIntentが呼ばれる 4
-
【android】DrawableとBitmap、リソースの相互変換
Resource → Bitmap Bitmap bm = BitmapFactory.dec
-
【android】言語・地域設定の取得
androidでは利用する言語と国名がjava.util.Localeのオブジェクトとして設定されて
-
[android] モンキーテスト(Monkey Test)を実行する
最近テストの効率化に目覚めました。 モンキーテストは猿にアプリを渡してみてめちゃくちゃな操作をさせ
-
【android】ホーム画面や他のアプリの前面にViewを表示する。
WindowManagerのTYPE_SYSTEM_ALERTのレイヤーにViewを表示することで、
-
【android】IMEの表示/非表示
//IMEを閉じる InputMethodManager inputMethodManager
-
[android] JSONのパースにかかる時間
リストデータなんかを保存したいというのはよくある要件だと思います。 DBは面倒だしカラム毎に集計す
-
【android】アプリ内課金を実装する
アプリ内課金のサンプルコードを解析します。 参考URL 公式API Android
-
【android】バイブレーションを使う
必要なファイル MyApp.manifest MyApp.java MyApp.m