Android, Как отобразить выбранный пользовательский вид в середине экрана?
Привет,
Как вы можете видеть на картинке, я создал настраиваемое представление, как в качестве элемента моего календаря. В коде я повторяю его, например, 50 раз, чтобы создать календарь.
Сервер отправляет мне флаг, который показывает, какой из них должен быть выбран (в этом случае выбирается 09 июня).
Моя проблема в том, что сервер отправляет день, который отсутствует на экране (например, 25 июня). Эта дата становится выбрана (фон 25 июня изменяется), но на экране я вижу изображение выше (но теперь фон 09 Jun изменился на белый цвет, как и другие).
Вещь, которую я ищу, показывает 25 июня в середине экрана. Я понятия не имею, как это возможно.
Любое предложение будет оценено. Код мю пользовательского вида (виджета), как это:
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.
Где вы находите учебник для горизонтального просмотра календаря? – ManishSB