PDA

Ver la Versión Completa : [ SOLUCIONADO ] Crash android 4.1.1 getWindow().setReenterTransition


gonza28
25/10/15, 21:58:40
Hola.
Tengo un gran problema. estoy probando las animaciones de transición y se me cierra la app en JellyBean. en lollipop va bien.

Si anulo el getWindow().setReenterTransition arranca bien la actividad.

esta es mi actividad

public class NumberActivity extends AppCompatActivity {
public RecyclerView recyclerView;
public LinearLayoutManager linearLayout;

targetapi(Build.VERSION_CODES.LOLLIPOP)
override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

setToolbar();

setupRecyclerView();

setupWindowAnimations();

}

private void setupRecyclerView() {
linearLayout = new LinearLayoutManager(this);
recyclerView = (RecyclerView) findViewById(R.id.reciclador);
recyclerView.setLayoutManager(linearLayout);
NumberAdapter adapter = new NumberAdapter(this, Numbers.getNumbers());
recyclerView.setAdapter(adapter);
}

private void setToolbar() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}

targetapi(Build.VERSION_CODES.LOLLIPOP)
private void setupWindowAnimations() {

getWindow().setReenterTransition(new Fade());
getWindow().setExitTransition(new Fade().setDuration(500));
}

override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_course, menu);
return true;
}

override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}


Muchas gracias.
Un saludo

Dexafree
25/10/15, 22:25:22
Eso es porque estás utilizando las transiciones de Lollipop

El propio Android Studio debería avisarte de que esos métodos pueden hacer que la aplicación se cierre.

Rodea las llamadas a esos métodos con lo siguiente


if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
// Tu codigo, en este caso seria en el onCreate la llamada a setupWindowAnimations()
}


Te recomiendo que te crees, en una clase Utils por ejemplo, un método tal que así:


public static boolean isLollipopOrHigher(){
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
}


Así, si en otro momento lo necesitas, solo tendrás que hacer



if(Utils.isLollipopOrHigher()){
// Tu codigo
}

gonza28
29/10/15, 06:23:04
Eso es porque estás utilizando las transiciones de Lollipop

El propio Android Studio debería avisarte de que esos métodos pueden hacer que la aplicación se cierre.

Rodea las llamadas a esos métodos con lo siguiente


if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
// Tu codigo, en este caso seria en el onCreate la llamada a setupWindowAnimations()
}


Te recomiendo que te crees, en una clase Utils por ejemplo, un método tal que así:


public static boolean isLollipopOrHigher(){
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
}


Así, si en otro momento lo necesitas, solo tendrás que hacer



if(Utils.isLollipopOrHigher()){
// Tu codigo
}


De lujo, funcionando. Otro tema resuelto para mi.
Muchas gracias

Enviado desde mi SM-N910U mediante Tapatalk

Dexafree
29/10/15, 11:15:37
Marcamos como Solucionado :ok: