2016-09-10 6 views
0

これはよくある質問ですが、私が見つけたすべての回答は、うまく動作しないか、レイアウトが壊れてしまいます。私はリストビュー項目のレイアウトを書いています、それは単に左のテキストビューと右のイメージで、問題はありません。私はアンドロイドを使ってみました:layout_gravity = "center_horizo​​ntal"しかし、それは何も変わりません。また、LinearLayoutをRelativeLayoutに変更し、layout_centerVertical = "true"を使用して、水平方向に中心を置いていましたが、高さの異なる行のイメージは他のものより少し大きかったです。これは私のレイアウトコードですrelativelayoutの垂直センタリングイメージビュー

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="70dp" 
    android:paddingLeft="8dp" 
    android:paddingRight="8dp" 
    android:background="?android:attr/selectableItemBackground"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:weightSum="3"> 
     <LinearLayout 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:layout_weight="2" 
      android:paddingTop="8dp" 
      android:paddingLeft="8dp" 
      android:paddingRight="8dp"> 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="18dp" 
       android:textColor="#000000" 
       android:text="Titolo di prova lorem ipsus dolor sit amet..." 
       android:id="@+id/article_title"/> 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Autore di prova" 
       android:id="@+id/article_info"/> 
      <TextView 
       android:layout_width="0dp" 
       android:layout_height="0dp" 
       android:visibility="invisible" 
       android:text="non dovresti poter vedere questa scritta..." 
       android:id="@+id/article_hiddenid"/> 
     </LinearLayout> 
<!-- Here's where it should be centered --> 
     <LinearLayout 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:padding="2dp" 
      android:orientation="vertical"> 
       <ImageView 
        android:layout_width="match_parent" 
        android:layout_height="70dp" 
        android:src="@drawable/demoimage2" 
        android:layout_gravity="center_horizontal" 
        android:id="@+id/article_image"/> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 

編集:ここはimgur.com/a/3ZGrlの外観です。 RelativeLayoutとlayout_centerVerticalを使用すると、次のようになります:imgur.com/a/vWrzH(いくつかの画像は他の画像より少し広いです)

答えて

0

あなたはあまりにも多くのLinearLayoutをネストしています。

まず、親LinearLayoutの向きを水平に設定してみてください。 2番目のネストされたレイアウトを削除します。これを試してみてください:変更のクリーンアップが、何のため

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:paddingLeft="8dp" 
android:paddingRight="8dp" 
android:weightSum="3" 
android:orientation="horizontal" 
android:background="?android:attr/selectableItemBackground"> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:layout_weight="2" 
     android:paddingTop="8dp" 
     android:paddingLeft="8dp" 
     android:paddingRight="8dp"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="18dp" 
      android:textColor="#000000" 
      android:text="Titolo di prova lorem ipsus dolor sit amet..." 
      android:id="@+id/article_title"/> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Autore di prova" 
      android:id="@+id/article_info"/> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:padding="2dp" 
     android:orientation="vertical"> 
      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:src="@drawable/demoimage2" 
       android:id="@+id/article_image"/> 
    </LinearLayout> 
</LinearLayout> 
+0

おかげで、それはあなたが出力されるもののイメージを共有してもらえますし、何を –

+0

前と同じです3ZGrlこれは私の電話で見える方法です。右の画像は、3行以上のタイトルを持つニュースに垂直に配置されていないことがわかります。 RelativeLayoutとlayout_centerVerticalを使用すると、画像は中央に配置されますが、ニュースのタイトルが3行以上ある場合は画像が少し大きくなります。それほどではありませんが、それは変ですhttp://imgur.com/a/vWrzH –

+0

http://imgur.com/a/を期待している –