1
我在寫一個包含一些自定義視圖的常見列表視圖。沒有什麼特別的。在某些listview項目中的Android神祕保證金
但是當我在銀河系s7中運行這個時,會在自定義項目視圖的中心創建一個神祕的水平間距。
這是一個抽象版本的自定義項目視圖,它將在listView baseAdapter的getView()上返回。
public class CustomView extends LinearLayout {
public CustomView(Context context) {
super(context);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.cell_dutch, this, true);
}
}
添加代碼如setLayoutParams(新LinearLayout.LayoutParams(...,...));沒有效果。
佈局是如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/linearLayoutTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginBottom="3dp"
android:gravity="bottom"
android:orientation="vertical">
<TextView
android:id="@+id/textViewUnRead"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginBottom="5dp"
android:text=""
android:textColor="@color/colorUnread"
android:textSize="9dp" />
<TextView
android:id="@+id/tvDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginBottom="5dp"
android:text="PM 3:11"
android:textColor="@color/color_chatcrey"
android:textSize="9dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:orientation="vertical">
<LinearLayout
android:background="@drawable/img_chat_bubble_white_you_02_android"
android:id="@+id/llBubble"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@drawable/..."
android:id="@+id/imageView" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/..." />
<!-- RED BOX -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TOTAL"
android:textSize="10dp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<TextView
android:id="@+id/textViewTotalPoint"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:gravity="right"
android:textColor="#000000"
android:textSize="8dp"
android:textStyle="bold" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:background="@drawable/..." />
</LinearLayout>
</LinearLayout>
<!-- PURPLE BOX -->
<ImageButton
android:id="@+id/imageButtonSnsShare"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/..." />
</LinearLayout>
</LinearLayout>
在上面的截圖中,紅色框和紫色按鈕之間應該沒有間距。實際上,在android studio ui編輯器中,我沒有看到任何間距,但它只是在運行時顯示出來。
但在另一個項目,我做了測試,它看起來就像下面的圖像很好。
似乎是在顯示自定義視圖作爲這兩個項目之間的ListView項邏輯沒有區別。爲什麼會這樣呢?
多年來,我已經看到了許多與三星設備有關的問題。嘗試明確設置應用程序主題,如果你還沒有。三星設備的默認設置通常有點隨意。 – 323go
我假設你在'ListView'中只有一種視圖類型。你能否在你的佈局文件中指出哪一部分屬於RED和PURPLE? – LightYearsBehind
不,實際上,我在視圖中有五種以上的視圖類型。上面的代碼是一個縮短的版本,因爲上面的屏幕的結果來自該源。我將在示例代碼中添加一個標題以指示RED和紫色視圖。 – March3April4