我的申请中遇到了问题。
我使用ListView来显示我的产品 我无法得到效果,每个项目都显示在整个屏幕上 我的意思是,每行继承高度。
这是我的ListView布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="4">
<!-- Main ListView
Always give id value as list(@android:id/list)
-->
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="3"
android:weightSum="2"
android:background="@color/pod_logo">
<ImageView
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/iVlogo_obiekty"
android:src="@drawable/logo_akme"
android:layout_weight="1" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:text="NAZWA OBIEKTU"
android:id="@+id/tV_nazwa_obiektu"
android:gravity="center"
android:textColor="#fff"
android:textSize="20dp"
android:background="@color/niebieski"
android:layout_weight="1" />
</LinearLayout>
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="#000" />
</LinearLayout>
这是我的行布局:
<?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:background="#fff"
android:orientation="vertical">
<!-- Product id (pid) - will be HIDDEN - used to pass to other activity -->
<TextView
android:id="@+id/pid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_marginLeft="0dp"
android:layout_marginTop="0dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
<!-- Name Label -->
<TextView
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="17sp"
android:textStyle="bold"
android:gravity="center"
android:height="40dp"
android:textColor="#fff"
android:background="#123456"
android:text="TEXT"
android:layout_alignParentLeft="true"
android:layout_marginLeft="0dp"
android:layout_alignParentTop="true"
android:layout_marginTop="0dp" />
</LinearLayout>
我改变了概念,我现在想要这样的照片:
有人想帮助我吗? PLS。我不知道我必须改变什么:/
答案 0 :(得分:0)
您可以尝试以编程方式设置行高。请注意,下面的代码是未经测试的/来自内存,因此可能需要一些调整,但实质上它会在适配器的构造函数(或其他地方)中抓取屏幕的高度并将其存储到screenHeight
。然后,您可以使用它来设置getView()
中每行的高度:
private int screenHeight;
//...
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics metrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(metrics);
screenHeight = metrics.heightPixels;
//...
@Override
public View getView (int position, View convertView, ViewGroup parent) {
if( convertView == null ){
convertView = inflater.inflate(R.layout.row, parent, false);
}
LayoutParams params = convertView.getLayoutParams();
if (params.height != screenHeight) params.height = screenHeight;
convertView.setLayoutParams(params);
return convertView;
}
编辑:请注意,上面的代码假设您在适配器的构造函数中传递Context
参数,或者您可以直接传递screenHeight
等。