J'ai un moyen de décider de changer ou non la couleur de la barre de navigation en fonction de l'affichage d'une vue à l'écran. La méthode a été écrite, mais je ne sais pas comment l'appeler. J'appelle cette méthode avec un événement de clic de bouton, mais c'est très dur. Vous voulez qu'il appelle automatiquement, plutôt que de cliquer sur l'appel de l'événement, comment puis-je faire?La barre de navigation Android change automatiquement de couleur en fonction des critères
public class Index extends Activity implements View.OnClickListener{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.index);
}
private void changeNavigationColour(View view){
Point p = new Point();
getWindowManager().getDefaultDisplay().getSize(p);
int[] loacation = new int[2];
view.getLocationInWindow(loacation);
Toast.makeText(this, Arrays.toString(loacation),Toast.LENGTH_SHORT).show();
Rect ivRect = new Rect(view.getLeft(),view.getTop(),view.getRight(),view.getBottom());
LinearLayout head = (LinearLayout) findViewById(R.id.index_head);
if(view.getLocalVisibleRect(ivRect)){
//Change the navigation color
head.setBackgroundColor(getResources().getColor(R.color.transparent));
}else {
//Change the navigation color
head.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
}
}
après ce que vous avez essayé jusqu'à présent pour vous aider à comprendre le problème –
montrez-nous votre code. –
vous devez être plus clair sur ce changement de «critères» .. qu'est-ce que c'est? comment tu l'as obtenu? –