【发布时间】:2016-01-22 21:41:10
【问题描述】:
在 Listview 适配器中,基于条件的 textview 文本大小正在发生变化。
条件 1:如果没有折扣值,则必须仅在 (textview_price) 中显示其价格并隐藏折扣值 textview。(textview_price size= 18)
条件 2:如果有折扣价的价值,那么它必须在 (textview_price) 中显示其价格和折扣价 textview_discounted。(textview_price size= 15 and textview_discounted size=18)。
如上图所示,我正在设置 textview_discount 的可见性消失。 第一次它显示 lsitview 完整,因为我设置了 textview 大小。但是当我滚动 lsitview 时,它在图像中的显示没有得到正确的文本大小。并且文本大小为 = 18,其中文本很大,有些文本视图大小为 15。(问题在 textView_price setTextSize 无法正常工作)
adapter.java 代码:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (inflater == null)
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_item_booking_slot_hours,parent ,false);
holder = new ViewHolder();
holder.tv_hours = (TextView) convertView.findViewById(R.id.tv_hour);
holder.textView_hour_am = (TextView) convertView.findViewById(R.id.textView_hour_am);
holder.textView_Price = (TextView) convertView.findViewById(R.id.textView_Price);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String stringPrice = "1500";
String stringDiscountedPrice = "1000"
if (entity.getPay().equals("0")) {
holder.textView_Price.setTextSize(TypedValue.COMPLEX_UNIT_PX, 18);
holder.textView_Price.setText("Rs." + stringPrice);
holder.textView_Discounted_Price.setVisibility(View.GONE);
} else if (entity.getPay().equals("1")){
holder.textView_Discounted_Price.setVisibility(View.VISIBLE);
holder.textView_Price.setTextSize(TypedValue.COMPLEX_UNIT_PX, 15);
holder.textView_Discounted_Price.setTextSize(TypedValue.COMPLEX_UNIT_PX, 18));
holder.textView_Discounted_Price.setText("Rs." + stringDiscountedPrice);
holder.textView_Price.setText("Rs." + stringPrice, TextView.BufferType.SPANNABLE);
}
return convertView;
}
行的layout.xml:
<RelativeLayout
android:id="@+id/relativeLayout_hour"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true">
<TextView
android:id="@+id/tv_hour"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerInParent="false"
android:layout_centerVertical="true"
android:paddingBottom="5dp"
android:paddingLeft="5dp"
android:paddingTop="5dp"
android:singleLine="true"
android:text="05:00"
android:textColor="@drawable/selector_booking_hour_text"
android:textSize="22sp" />
<TextView
android:id="@+id/textView_hour_am"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="false"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/tv_hour"
android:gravity="center_vertical"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="true"
android:text=" pm"
android:textColor="@drawable/selector_booking_hour_am"
android:textSize="18sp"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/relativeLayout_hour">
<TextView
android:id="@+id/textView_Price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_toLeftOf="@+id/textView_Discounted_Price"
android:singleLine="true"
android:text="Rs.4000"
android:textColor="@drawable/selector_booking_hour_text"
android:textSize="@dimen/text_slot_price" />
<TextView
android:id="@+id/textView_Discounted_Price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="2dp"
android:layout_toLeftOf="@+id/imageView_slot_arrow"
android:singleLine="true"
android:text="Rs.3000"
android:textColor="@drawable/selector_booking_hour_text_discounted"
android:textSize="@dimen/text_slot_discount_price"
/>
<ImageView
android:id="@+id/imageView_slot_arrow"
android:layout_width="wrap_content"
android:layout_height="12dp"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="2dp"
android:src="@drawable/next" />
</RelativeLayout>
</RelativeLayout>
感谢任何帮助。谢谢。
【问题讨论】:
-
我已经编辑了我的问题并添加了后适配器代码。你现在可以帮忙吗? @kishorejethava
-
你已经在
inflater上设置了条件对吗? -
意思是我没有得到你。我已经设置了我在适配器和布局文件中设置 textview 值的条件(试图从 layout.xml 文件中删除值但没有工作)。@kishorejethava
-
它在第一次加载时完全设置了 textview 文本大小,但是当我开始滚动列表视图时,它显示为显示的图像。谢谢。 @kishorejethava
-
已发布 xml 代码 @kishorejethava
标签: android listview scroll text-size