嗨,
如上图所示,我创建了一个自定义视图作为我的日历项目。在代码中,我重复了例如 50 次来创建日历。
服务器向我发送一个标志,显示应该选择哪些(在本例中选择 09 Jun)。
我的问题是当服务器发送一个不在屏幕上的日期(例如 6 月 25 日)时,该日期被选中(6 月 25 日的背景发生变化)但在屏幕上我看到上图(但现在 6 月 9 日的背景变为白色颜色和其他人一样)。
我正在寻找的东西是在屏幕中间显示 25 Jun 项目。我不知道它怎么可能。
任何建议将不胜感激。mu 自定义视图(小部件)的代码是这样的:
public class Calendar_Item extends RelativeLayout {
private LayoutInflater mInflater;
private RelativeLayout rlContainer;
private TextView tvMonth;
private TextView tvDay;
private ImageView imDot;
public Calendar_Item(Context context) {
super(context);
init(context);
}
public Calendar_Item(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public Calendar_Item(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}
private void init(Context context) {
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout calendarView = (RelativeLayout) mInflater.inflate(R.layout.calendar_item, null);
addView(calendarView);
rlContainer = (RelativeLayout) calendarView.findViewById(R.id.cal_rlContainer);
tvMonth = (TextView) calendarView.findViewById(R.id.cal_month);
tvDay = (TextView) calendarView.findViewById(R.id.cal_date);
imDot = (ImageView) calendarView.findViewById(R.id.cal_dot);
}
public void setMonth(String month) {
tvMonth.setText(month);
}
public void setMonth(int resId) {
tvMonth.setText(resId);
}
public CharSequence getMonth() {
return tvMonth.getText();
}
public void setDay(String day) {
tvDay.setText(day);
}
public void setDay(int resId) {
tvDay.setText(resId);
}
public CharSequence getDay() {
return tvDay.getText();
}
public void showDot() {
imDot.setVisibility(View.VISIBLE);
}
public void hideDot() {
imDot.setVisibility(View.INVISIBLE);
}
public void setTextColor(int color) {
tvDay.setTextColor(color);
}
public void setBackgroundResource(int resid) {
rlContainer.setBackgroundResource(resid);
}
public void setBackgroundDrawable(Drawable d) {
rlContainer.setBackgroundDrawable(d);
}
public void setBackgroundColor(int color) {
rlContainer.setBackgroundColor(color);
}
}
布局 XML 代码:
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView
xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:layout_below = "@id/header"
android:fadingEdgeLength = "30dip"
android:fadingEdge = "horizontal"
android:scrollbars = "none" >
<LinearLayout
android:id = "@+id/llCalendarItems"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:orientation = "horizontal" >
</LinearLayout>
</HorizontalScrollView>
所有日历项目都位于 LinearLayout 内。