Android. Lutscher. Recyclerview scrollt nichtAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Android. Lutscher. Recyclerview scrollt nicht

Post by Anonymous »

Ich versuche, in meiner App einen Recyclerview zu erstellen, aber ich kann es nicht scrollbar machen. Hier gibt es viele gleiche Probleme, aber keine Lösung hilft mir. Das Problem ist, wenn ich versuche, wieder aufzunehmen, ruft LayoutManager in meinem Adapter auf OnbindViewHolder () und GetItemCount () -Methoden auf, aber visuell passiert nichts. Nur auf Lollipop -Geräten. Auf 4.x und 6 Android funktioniert es gut.public class SensorAdapter extends RecyclerView.Adapter{

List data= Collections.emptyList();

public SensorAdapter(List data) {
L.l("SensorAdapter() Constructor", this);
this.data = data;
}

@Override
public SensorAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
L.l("SensorAdapter() onCreateViewHolder", this);
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.sensor_item, parent, false);
MyViewHolder holder = new MyViewHolder(view);
return holder;
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
L.l("SensorAdapter() onBindViewHolder", this);
Sensor curSensor = data.get(position);
holder.textView1.setText(curSensor.getCreated());
holder.textView2.setText(curSensor.getValue());
holder.textView3.setText("sensor id: "+curSensor.getSensor_id());
}

@Override
public int getItemCount() {
L.l("SensorAdapter() getItemCount", this);
return data.size();
}

public static class MyViewHolder extends RecyclerView.ViewHolder{
TextView textView1;
TextView textView2;
TextView textView3;
public MyViewHolder(View itemView) {
super(itemView);
L.l("MyViewHolder() constructor", this);
textView1 = (TextView) itemView.findViewById(R.id.sensItemTV1);
textView2 = (TextView) itemView.findViewById(R.id.sensItemTV2);
textView3 = (TextView) itemView.findViewById(R.id.sensItemTV3);
}
}
< /code>
Fragment: < /p>
public class SensorsFragment extends Fragment implements AdapterView.OnItemClickListener {

private final String types[] = {"SOLAR","HUMIDITY","TEMPERATURE","WINDSPEED","CHARGE","PRESSURE","HUMIDITY_15", "HUMIDITY_65"};
private Spinner spinner;
private RecyclerView recyclerView;
private Button from, to;
private List temp;
private static List sensorList;
private String result;
private TypeToken tokenSensor;
private static Sensor curSensor;
private static String zone_id;
private SensorAdapter sensorAdapter;
private View layout;

public SensorsFragment() {}

public static SensorsFragment newInstance(String zoneId){
SensorsFragment.zone_id=zoneId;
return new SensorsFragment();
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
L.l("onCreateView()", this);
layout = inflater.inflate(R.layout.fragment_sensos, container, false);
return layout;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
L.l("onActivityCreated", this);
initViews();
showRecyclerViews(getSensorsfromServer());
}

private void initViews(){
L.l("initViews()", this);
from = (Button) getActivity().findViewById(R.id.dateFrom);
to = (Button) getActivity().findViewById(R.id.dateTo);
}

private void prepareSpinner(){
L.l("prepareSpinner()", this);
ArrayAdapter adapter = new ArrayAdapter(getActivity(), R.layout.snipper_item, types);
adapter.setDropDownViewResource(R.layout.snipper_item);
spinner = (Spinner) getActivity().findViewById(R.id.spinner2);
spinner.setAdapter(adapter);
spinner.setPrompt("Select type os sensors");
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView parent, View view,
int position, long id) {
String filtername = types[position].toLowerCase();
L.l("filtername = "+filtername);
temp = new ArrayList();
for(Sensor sensor: sensorList){
if(sensor.getType().equals(filtername)){
temp.add(sensor);
}
}
Log.d(LoginActivity.LOG, " temp.size() = " + temp.size());
//showRecyclerViews(temp);
}

@Override
public void onNothingSelected(AdapterView arg0) {
}
});
}

public List getSensorsfromServer() {
L.l("getSensorsfromServer()", this);
tokenSensor = new TypeToken() {};
try {
result = new MyDownTask("sensors/get",zone_id, getActivity()).execute().get();
sensorList = gson.fromJson(result, tokenSensor.getType());
if(sensorList==null) throw new Exception("sensorList==null");
L.l("sensorList.size() = "+sensorList.size(), this);
return sensorList;

} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getActivity(), "No data... :(", Toast.LENGTH_SHORT).show();
commitFragment(FieldsFragment.newInstance(),getFragmentManager());
return new ArrayList();
}
}

@Override
public void onItemClick(AdapterView adapterView, View view, int i, long l) {
curSensor = sensorList.get(i);
Log.d(LoginActivity.LOG, "ActivityListView. onItemClick. curSensor = " + curSensor + " isSensorListVisible = ");
Intent intent = new Intent(getActivity(), DetailsActivity.class);
startActivity(intent);
}

private void showRecyclerViews(List sensors){
recyclerView = (RecyclerView) getActivity().findViewById(R.id.sensorsRecyclerView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
sensorAdapter = new SensorAdapter(sensors);
recyclerView.setAdapter(sensorAdapter);
}
}
< /code>
fragment_sensos.xml:
















< /code>
Interessante Beobachtung. Wenn ich meine Recyclerview nach unten scrolle, scrollen Sie auf Programmebene wirklich! Ursache, wenn ich auf Element tippe - es zeigt (in einem anderen Fragment) Element, das am Ende der Liste steht! Und wenn ich "zurück" drücke, bin es mich zurück zum gescrollten Recyclerview !!! Ich denke, es bedeutet, dass das Problem in der Nähe des Layout -Managers und konkret in Element Decorator oder Element Animator liegt. Zum Beispiel: < /p>
import com.google.android.collect.Lists;
import android.util.MathUtils;
import android.view.ViewRootImpl;
< /code>
...und viele andere in anderen *.java -Dateien.
Kann es mit der Verlust der Funktionalität dieser Komponenten verbunden werden? Und wie kann ich dieses Problem beheben? Hilf mir bitte.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post