2016-04-26 3 views
0

У меня есть ImageButton и TextView с одинаковым размером и высотой внутри RelativeView. По умолчанию TextView отключен, а ImageButton включен. Тем не менее, я не могу нажать на ImageButton в этих условиях.Два вида ontop друг друга, но только показывают один?

Когда я включаю TextView и отключает ImageButton, я могу нажать TextView. Я думаю, это потому, что он находится под ImageButton в XML.

Кто-нибудь знает, как я могу получить такую ​​«функцию переключения», когда оба элемента имеют одинаковый размер на каждом из них, но только один из них можно одновременно щелкнуть?

  <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="15dp"> 

       <ImageButton 
        android:id="@+id/pp_note_1" 
        android:layout_width="150dp" 
        android:layout_height="50dp" 
        android:layout_alignParentRight="true" 
        android:background="@android:color/white"/> 

       <AutoCompleteTextView 
        android:enabled="false" 
        android:id="@+id/pp_autonote_1" 
        android:layout_alignParentRight="true" 
        android:layout_width="150dp" 
        android:layout_height="50dp" /> 


      </RelativeLayout> 
+0

Вы можете сделать вашу жизнь легкой и использовать ViewSwitcher. Или вместо отключения попробуйте установить видимость в GONE. – ElDuderino

+0

@ ElDuderino Хм никогда не слышал о ViewSwitcher, я могу посмотреть на это. Также, изменив видимость, позвольте мне использовать фоновый? – Brejuro

+0

Если вы установите видимость ImageButton в GONE, фон ImageButton больше не будет отображаться. Если вам нужен фон для обоих представлений, установите его в RelativeLayout или в ViewSwitcher, если вы его используете. Вы можете, конечно, также установить его в TextView, так что оба представления имеют фон. – ElDuderino

ответ

0

Посмотрите

public void setFocusable (boolean focusable) 
public void setFocusableInTouchMode (boolean focusableInTouchMode) 
public void setClickable (boolean clickable) 

View

0

Это рабочий пример переключения двух точек зрения с ViewSwitcher:

viewswitcher.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/content" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<ViewSwitcher 
    android:id="@+id/viewSwitcher" 
    android:layout_centerInParent="true" 
    android:layout_width="match_parent" 
    android:layout_height="96dp"> 

    <ImageButton 
     android:id="@+id/image" 
     android:src="@mipmap/ic_launcher" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

    <TextView 
     android:id="@+id/text" 
     android:text="Text" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

</ViewSwitcher> 

</RelativeLayout> 

OnCreate Activity в()

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.viewswitcher); 

    final ViewSwitcher viewSwitcher = (ViewSwitcher) findViewById(R.id.viewSwitcher); 
    final ImageButton imageButton = (ImageButton) findViewById(R.id.image); 
    imageButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      viewSwitcher.showNext(); 
     } 
    }); 
} 

Для анимации перехода используйте viewPager.setInAnimation() и .setOutAnimation().

+0

Я понял, что ViewSwitcher не будет работать для меня, потому что этот переключатель является настройкой, поэтому, когда приложение запускается снова, я проверяю сохраненные настройки и включаю/отключает их соответственно, чего я не могу сделать с помощью ViewSwitcher (только showNext и showPrevious). Я до сих пор не могу понять, как это сделать. – Brejuro

+0

Ну, вместо включения/отключения, просто сделайте viewPager.showNext() или не делайте этого. Таким образом, вы либо показываете ImageButton, либо TextView. Вы можете использовать viewPager.reset(), чтобы ... сбросить все. Таким образом, вы можете начать с нуля. – ElDuderino

+0

Я не понимаю, почему включение и отключение не работает. Это все равно не позволит мне использовать то, что выше в xml. – Brejuro

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