0

Android ListViewには、それぞれ独自のLinearLayoutを持つアイテムビュータイプがいくつかあります。私はお互いに水平に配置されていることに加えて、ウィジェットのすべてを垂直に配置しようとしています。添付の写真のリストビューの最初の項目を参照してください。ウィジェットがListViewアイテムの上部近くに押し上げられている点を除いて、上手く見えます。Android LinearLayoutの向きが水平のときにウィジェットを垂直に配置するにはどうすればよいですか?

TextViewとImageViewsのライトブルーとライトグリーンの背景は、xmlが配置に及ぼす影響を確認するのに役立ちます。画像のすぐ下に、ListViewの一番上のアイテムのレイアウトがあります。 TextViewと円形イメージ(ImageView)を垂直にセンタリングするにはどうしたらよいですか?

enter image description here

<?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:orientation="horizontal" 
android:paddingBottom="5dp"> 

     <TextView 
      android:id="@+id/ques_num" 
      android:layout_width="30dp" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="2dp" 
      android:layout_marginRight="2dp" 
      android:layout_marginTop="2dp" 
      android:layout_marginBottom="2dp" 
      android:background="@color/LightBlue" 
      android:text="0." 
      android:textSize="22sp" /> 

     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:layout_gravity="center_vertical" 
      android:background="@color/LightGreen" 
      android:adjustViewBounds="true" 
      android:id="@+id/question_id_0" /> 
     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:layout_gravity="center_vertical" 
      android:background="@color/LightGreen" 
      android:adjustViewBounds="true" 
      android:id="@+id/question_id_1" /> 
     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:layout_gravity="center_vertical" 
      android:background="@color/LightGreen" 
      android:adjustViewBounds="true" 
      android:id="@+id/question_id_2" /> 
     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:layout_gravity="center_vertical" 
      android:background="@color/LightGreen" 
      android:adjustViewBounds="true" 
      android:id="@+id/question_id_3" /> 
     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:layout_gravity="center_vertical" 
      android:background="@color/LightGreen" 
      android:adjustViewBounds="true" 
      android:id="@+id/question_id_4" /> 


</LinearLayout> 

UPDATE:

android:gravity="center_horizontal" 

し、その後にそれを変更してみました:

android:gravity="center_horizontal|center_vertical" 

私はのLinearLayoutに追加するだけで試してみました

どちらの場合でも、ウィジェットはListViewアイテムの水平中心に移動しましたが、垂直位置には何の影響もありませんでした。

enter image description here

+0

android:gravity = "center_horizo​​ntal | center_vertical"を線形レイアウトに追加します。 –

+0

これは垂直位置を変更しませんでしたが、水平位置を変更しましたが、これは私の必要としていません。私はその質問を編集し、それを試して何が起こったのかのイメージを投稿しました。 – Alyoshak

答えて

0

全体の問題はのLinearLayoutにこのラインの組み合わせだった:

画像でここに結果を参照してください。
android:paddingBottom="5dp" 

と、TextViewオブジェクトおよびImageViewオブジェクトのコンテンツのサイズを考慮して、ListVieの上下の境界w項目はすでにできるだけ多く押し込んでいた。 paddingBottom属性のために、同じように見えても調整を調整する余地はありませんでした。

0

方向性を持っているあなたのLinearLayoutにこれを追加水平

android:gravity="center_horizontal" 
+0

"center_vertical"をお勧めしますか?私は垂直センタリングが必要なので。あなたは私の質問を誤解しているかもしれません。私はあなたが提案したものを試しました。結果については私の更新された質問を参照してください。 – Alyoshak

+0

あなたのLinearLayoutにこれを追加してみ アンドロイド:layout_centerVertical =「true」を アンドロイド:layout_centerHorizo​​ntal =「true」を – Bryan

+0

私は本当に、あなたの助けに感謝し、私はあなたがお勧め何をしようとするつもりですが、あなたは私を再現していますあなたが働くと確信しているものを推薦していますか?あるいは、あなたはただ推測して、試してみるために物事を投げ捨てていますか? – Alyoshak

関連する問題