Я только что создал пользовательскую кнопку и изменил различные состояния. Но когда я нажал кнопку (я попробовал на реальном устройстве), изменение формы задерживается, примерно 300 мс. Кто-нибудь знает, откуда это может произойти?Проблема с задержкой Android при нажатии кнопки
button.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/pressed_button_primary" />
<item android:state_focused="true" android:drawable="@drawable/pressed_button_primary" />
<item android:drawable="@drawable/normal_button_primary"/>
</selector>
normal_button_primary.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#FFCF01" />
</shape>
pressed_button_primary.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#FEBF48" />
</shape>
актив- ности:
public class MainActivity extends ActionBarActivity {
Button login_button;
Button signup_button;
private static final String CONSOLETAG = "consoleDebug : ";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Click on signup button
signup_button = (Button) findViewById(R.id.signupButton);
signup_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Nothin
}
});
// Click on login button
login_button = (Button) findViewById(R.id.loginButton);
login_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Nothin
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
return super.onOptionsItemSelected(item);
}
public void goToSignup(View view) {
Intent intent = new Intent(this, SignupActivity.class);
startActivity(intent);
}
}
это может быть случай, когда вы нажимаете на кнопку, некоторые тяжелые операции продолжается. Вы можете это проверить? –
Я проверил и нет операции, прикрепленной к клику. Я добавил ClickListener только для печати некоторого контента на консоль, и этот контент также печатает с задержкой на консоли –
Возможно, также, что ваши изображения 'press_button_primary' и' normal_button_primary' имеют высокие разрешения, которые требуют времени для нагрузки. Пожалуйста, разместите разрешения изображений для лучшего понимания/ –