由于某种原因,android:layout_height="200sp"
属性没有任何效果。预览在Android Studio中正确绘制,但如果我运行我的应用程序,则列表项不会根据android:layout_height="200sp"
更改其大小。我使用此RelativeLayout
作为ListView
的列表项。
有什么建议吗?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="120dip"
android:background="#ffffff"
>
<ImageView
android:id="@+id/icon"
android:src="@drawable/ic_launcher"
android:layout_width="50dip"
android:layout_height="50dip"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_gravity="center"
/>
</RelativeLayout>
我做了一个更简单的例子。我假设列表项的高度为120dip
,左侧有一个图标,大小为50x50 dip
。实际情况是,由于某种原因,列表项与ImageView
具有相同的高度。
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if(convertView == null){
convertView = mInflater.inflate(R.layout.listview_nearbylist_item, null);
holder = new ViewHolder();
//holder.text1 = (TextView) convertView.findViewById(R.id.text1);
//holder.text2 = (TextView) convertView.findViewById(R.id.text2);
//holder.text3 = (TextView) convertView.findViewById(R.id.text3);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
//holder.text1.setText(items.get(position).getRestaurantName());
//holder.text2.setText(items.get(position).getRestaurantGenre());
//holder.text3.setText("08:00 - 18:00 Uhr");
return convertView;
}
答案 0 :(得分:1)
convertView = mInflater.inflate(R.layout.listview_nearbylist_item, null);
这里有两个问题:
我不知道mInflater
来自何处,但是请从getLayoutInflater()
调用您的活动,而不是任何其他来源。否则,主题将无效。
使用inflate(R.layout.listview_nearbylist_item, parent, false)
可以解决您的身高问题,如果没有其他方法可以避免基于RelativeLayout
的行的其他问题。
答案 1 :(得分:0)
您应该只使用sp来调整字体大小。对于其他一切,你需要使用dip。有关详细信息,请参阅What is the difference between "px", "dp", "dip" and "sp" on Android?。
关于您的问题,请用dip替换容器尺寸。仅将sp与textSize属性一起使用。你不应该有问题。
编辑:我还注意到您的布局中存在一些逻辑错误。您的第四个子窗口小部件(TextView)设置为与父窗口小部件的大小匹配 - 这将与布局中的其他所有内容重叠。你确定这是你想要的吗?这可以在技术上完成,但我不确定这是否是你想要的。
第一个子窗口小部件(图像视图)也应该与父窗口的顶部和底部对齐。如您所见,对于给定的尺寸,这是不可能的。有些东西必须在那里改变。
答案 2 :(得分:0)
试试这个
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="200dip"
android:padding="6sp"
android:background="#ffffff">