2017-12-27 480 views
0

我試着創建一個ListView項目佈局,並適合左側的圖標,中間是主要文本,然後再分成兩個文本(主文本高度的頂部和底部) )在主要文本的右側 - 但我似乎無法使其「適合」取決於屏幕大小和文本。Xamarin Android RelativeLayout設計器設置

我的繼承人目前AXML佈局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:minWidth="25px" 
android:minHeight="25px"> 
<ImageView 
    android:layout_width="60dp" 
    android:layout_height="60dp" 
    android:background="@android:color/darker_gray" 
    android:id="@+id/photoImageView" /> 
<TextView 
    android:text="App Name And UID" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textAlignment="viewStart" 
    android:background="@android:color/holo_blue_light" 
    android:gravity="center_vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="60dp" 
    android:layout_toRightOf="@id/photoImageView" 
    android:id="@+id/nameTextView" /> 
<TextView 
    android:text="Down: 723B/s" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:textAlignment="viewStart" 
    android:background="@android:color/holo_blue_dark" 
    android:gravity="center_vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="30dp" 
    android:layout_toRightOf="@id/nameTextView" 
    android:id="@+id/downloadTextView" /> 
<TextView 
    android:text="Up: 2104MB/ss" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:textAlignment="viewStart" 
    android:background="@android:color/holo_blue_dark" 
    android:gravity="center_vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="30dp" 
    android:layout_toRightOf="@id/nameTextView" 
    android:layout_below="@id/downloadTextView" 
    android:id="@+id/uploadTextView" /> 

有沒有人有一個解決方案或東西我在想念?請注意即時嘗試避免佈局嵌套

+0

請問您現在VS正常工作?你測試過'GridLayout'嗎? –

+0

VS設計師從來沒有正常工作,但是當我建立並運行它時,它很好 – Nevaran

+0

因此,這兩種解決方案都不適合你,是不是? –

回答

0

如果您的要求允許,您可以使用LinearLayout而不是RelativeLayout來實現。在上面的示例中,您可以使用layout_weight屬性來指定大小,使其始終佔用屏幕上的特定比例,在上面的示例中,我使用了1(應用圖標) - 3(主文本) - 2(最後一部分)。這總共爲6,這意味着無論屏幕大小如何,圖標總是佔用屏幕寬度的1/6,主文本將佔用3/6,依此類推。查找代碼執行本以下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:minWidth="25dp" 
android:minHeight="25dp"> 
<ImageView 
    android:layout_width="0dp" 
    android:layout_height="60dp" 
    android:layout_weight="1" 
    android:background="@android:color/darker_gray" 
    android:id="@+id/photoImageView" /> 
<TextView 
    android:text="App Name And UID" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:background="@android:color/holo_blue_light" 
    android:gravity="center_vertical" 
    android:layout_width="0dp" 
    android:layout_weight="3" 
    android:layout_height="60dp" 
    android:id="@+id/nameTextView" /> 
<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="2" 
    android:orientation="vertical"> 
<TextView 
    android:text="Down: 723B/s" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:background="@android:color/holo_blue_dark" 
    android:gravity="center_vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="30dp" 
    android:id="@+id/downloadTextView" /> 
<TextView 
    android:text="Up: 2104MB/ss" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:background="@android:color/holo_blue_dark" 
    android:gravity="center_vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="30dp" 
    android:id="@+id/uploadTextView" /> 
</LinearLayout> 

+0

那麼它使用** 2 **佈局,這不是很好的性能明智,但我想如果沒有其他方式,我把它! – Nevaran

+0

酷酷,你可以upvote,如果它適合你 –

+0

剛剛做過 - 在15代表它說,它並沒有顯示,雖然 - 一種奇怪的方式來標記它 – Nevaran

0

如果你只是想用一種佈局,嘗試GridLayout

<GridLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:rowCount="2" 
    android:columnCount="6"> 
    <ImageView 
     android:src="@drawable/rr" 
     android:layout_rowSpan="2" 
     android:background="@android:color/darker_gray" 
     android:id="@+id/photoImageView" /> 
    <TextView 
     android:text="App Name And UID" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:background="@android:color/holo_blue_light" 
     android:gravity="center_vertical" 
     android:layout_columnSpan="3" 
     android:layout_rowSpan="2" 
     android:layout_gravity="fill_vertical" 
     android:id="@+id/nameTextView" /> 
    <TextView 
     android:text="Down: 723B/s" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:background="@android:color/holo_blue_dark" 
     android:gravity="center_vertical" 
     android:id="@+id/downloadTextView" 
     android:layout_gravity="fill" 
     android:layout_columnSpan="2" /> 
    <TextView 
     android:text="Up: 2104MB/ss" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:background="@android:color/holo_blue_dark" 
     android:gravity="center_vertical" 
     android:id="@+id/uploadTextView" 
     android:layout_gravity="fill" 
     android:layout_columnSpan="2" /> 
</GridLayout> 
+0

我沒有很多好運與GridLayouts - 似乎VS的Xamarin是有點破碎。 – Nevaran

+0

複製並粘貼即可。 –

相關問題