2016-01-27 4 views
1

Я использую ImageButton в моем XML, как это:Android ImageButton нажмите не работает иногда

<FrameLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     > 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/imageButton_home" 
      android:src="@drawable/home_icon" 
      android:background="@android:color/transparent" 
      android:layout_alignParentLeft="true" 
      android:layout_marginLeft="10dp" 
      android:focusableInTouchMode="false" 
      android:focusable="false" 
      android:clickable="true" 
      /> 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/imageButton_back" 
      android:src="@drawable/back_icon" 
      android:layout_alignParentLeft="true" 
      android:layout_marginLeft="10dp" 
      android:background="@android:color/transparent" 
      android:visibility="gone" 
      android:focusableInTouchMode="false" 
      android:focusable="false" 
      android:clickable="true" 
      /> 

    </FrameLayout> 

только одна кнопка изображения видна одновременно. И я захватывая щелчок в моем Java коде следующим образом:

imageButtonHome.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent homeIntent = new Intent(SettingsActivity.this, MainActivity.class); 
      startActivity(homeIntent); 
     } 
    }); 

Это иногда работает, но не всегда. я вижу эту линию в моем LogCat всякий раз, когда я нажимаю на кнопку изображение:

D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN 

Эта линия всегда появляется, даже когда мой ImageButton щелчок действие не выполняется.

Но когда мой ImageButton щелчок работает правильно, это другая линия добавляет войти:

D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN 
D/AbsListView: Get MotionRecognitionManager 

Я хочу, чтобы моя кнопку изображения, чтобы работать каждый раз. Пожалуйста помоги.

+0

почему вы используете framelayout ?? –

+0

, потому что мне нужно разместить эти 2 кнопки в одном положении, но нужно делать только одно видимое за раз. –

+0

вы можете использовать относительный макет, то –

ответ

5

Дайте некоторое дополнение к вашим кнопкам ImageButtons, чтобы зафиксировать событие касания.

+0

Да, но это сделало бы их меньше ... Я не хочу, чтобы –

+0

Наложение не уменьшало бы кнопку. Пожалуйста попробуйте. –

+0

yep .... это помогает ..... просто пробовал .... спасибо тонну! –

-1

Попробуйте пользователь LinearLayout вместо FrameLayout.

Считается, что FrameLayout содержит только 1 ребенка.

-2

Замените это и попробуйте.

imageButtonHome.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent homeIntent = new Intent(SettingsActivity.this, MainActivity.class); 
     startActivity(homeIntent); 
    } 
}); 
0

Использование setOnClickListener (...) на ImageButton

Смежные вопросы