public void Initialize() { if (weatherView != null) { View?.SetBackgroundColor(weatherView.PendingBackground); // specify an adapter (see also next example) RecyclerView.Adapter adapter = null; weatherType = (WeatherListType)Arguments?.GetInt("WeatherListType", 0); switch (weatherType) { default: case WeatherListType.Forecast: recyclerView.SetLayoutManager(new WearableLinearLayoutManager(Activity)); adapter = new ForecastItemAdapter(weatherView.Forecasts.ToList()); break; case WeatherListType.HourlyForecast: recyclerView.SetLayoutManager(new WearableLinearLayoutManager(Activity)); adapter = new HourlyForecastItemAdapter(weatherView.Extras.HourlyForecast.ToList()); break; case WeatherListType.Alerts: recyclerView.SetLayoutManager(new LinearLayoutManager(Activity)); adapter = new WeatherAlertPanelAdapter(weatherView.Extras.Alerts.ToList()); break; } recyclerView.SetAdapter(adapter); } }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.Inflate(Resource.Layout.fragment_weather_now, container, false); // Setup Actionbar HasOptionsMenu = false; refreshLayout = (SwipeRefreshLayout)view; mainView = view.FindViewById <NestedScrollView>(Resource.Id.fragment_weather_now); mainView.ScrollChange += ScrollView_ScrollChange; bgImageView = view.FindViewById <ImageView>(Resource.Id.image_view); // Condition locationName = view.FindViewById <TextView>(Resource.Id.label_location_name); updateTime = view.FindViewById <TextView>(Resource.Id.label_updatetime); weatherIcon = view.FindViewById <TextView>(Resource.Id.weather_icon); weatherCondition = view.FindViewById <TextView>(Resource.Id.weather_condition); weatherTemp = view.FindViewById <TextView>(Resource.Id.weather_temp); // Details detailsPanel = view.FindViewById(Resource.Id.details_panel); humidity = view.FindViewById <TextView>(Resource.Id.humidity); pressureState = view.FindViewById <TextView>(Resource.Id.pressure_state); pressure = view.FindViewById <TextView>(Resource.Id.pressure); visiblity = view.FindViewById <TextView>(Resource.Id.visibility_val); feelslike = view.FindViewById <TextView>(Resource.Id.feelslike); windDirection = view.FindViewById <TextView>(Resource.Id.wind_direction); windSpeed = view.FindViewById <TextView>(Resource.Id.wind_speed); sunrise = view.FindViewById <TextView>(Resource.Id.sunrise_time); sunset = view.FindViewById <TextView>(Resource.Id.sunset_time); // Forecast forecastPanel = view.FindViewById <RelativeLayout>(Resource.Id.forecast_panel); forecastPanel.Visibility = ViewStates.Invisible; forecastView = view.FindViewById <Android.Support.V7.Widget.RecyclerView>(Resource.Id.forecast_view); // Additional Details forecastSwitch = view.FindViewById <Switch>(Resource.Id.forecast_switch); forecastSwitch.CheckedChange += ForecastSwitch_CheckedChange; forecastSwitch.Visibility = ViewStates.Gone; txtForecastView = view.FindViewById <ViewPager>(Resource.Id.txt_forecast_viewpgr); txtForecastView.Adapter = new TextForecastPagerAdapter(this.Activity, new List <TextForecastItemViewModel>()); txtForecastView.Visibility = ViewStates.Gone; hrforecastPanel = view.FindViewById <LinearLayout>(Resource.Id.hourly_forecast_panel); hrforecastPanel.Visibility = ViewStates.Gone; hrforecastView = view.FindViewById <Android.Support.V7.Widget.RecyclerView>(Resource.Id.hourly_forecast_view); precipitationPanel = view.FindViewById <RelativeLayout>(Resource.Id.precipitation_card); precipitationPanel.Visibility = ViewStates.Gone; chanceLabel = view.FindViewById <TextView>(Resource.Id.chance_label); chance = view.FindViewById <TextView>(Resource.Id.chance_val); cloudinessLabel = view.FindViewById <TextView>(Resource.Id.cloudiness_label); cloudiness = view.FindViewById <TextView>(Resource.Id.cloudiness); qpfRain = view.FindViewById <TextView>(Resource.Id.qpf_rain_val); qpfSnow = view.FindViewById <TextView>(Resource.Id.qpf_snow_val); // Alerts alertButton = view.FindViewById(Resource.Id.alert_button); alertButton.Click += (sender, e) => { // Show Alert Fragment if (weatherView.Extras.Alerts.Count > 0) { AppCompatActivity.SupportFragmentManager.BeginTransaction() .Add(Resource.Id.fragment_container, WeatherAlertsFragment.NewInstance(location, weatherView)) .Hide(this) .AddToBackStack(null) .Commit(); } }; alertButton.Visibility = ViewStates.Invisible; // Cloudiness only supported by OWM cloudinessLabel.Visibility = ViewStates.Gone; cloudiness.Visibility = ViewStates.Gone; forecastView.HasFixedSize = true; forecastAdapter = new ForecastItemAdapter(new List <ForecastItemViewModel>()); forecastView.SetAdapter(forecastAdapter); hrforecastView.HasFixedSize = true; hrforecastAdapter = new HourlyForecastItemAdapter(new List <HourlyForecastItemViewModel>()); hrforecastView.SetAdapter(hrforecastAdapter); // SwipeRefresh refreshLayout.SetColorSchemeColors(ContextCompat.GetColor(Activity, Resource.Color.colorPrimary)); refreshLayout.Refresh += delegate { Task.Run(async() => { if (Settings.FollowGPS && await UpdateLocation()) { // Setup loader from updated location wLoader = new WeatherDataLoader(this.location, this, this); } await RefreshWeather(true); }); }; // Nav Header View navheader = Activity.FindViewById <NavigationView>(Resource.Id.nav_view).GetHeaderView(0); navLocation = navheader.FindViewById <TextView>(Resource.Id.nav_location); navWeatherTemp = navheader.FindViewById <TextView>(Resource.Id.nav_weathertemp); weatherCredit = view.FindViewById <TextView>(Resource.Id.weather_credit); loaded = true; refreshLayout.Refreshing = true; return(view); }