0

Моего приложения имеет ViewPager со следующим фрагментомКак greyout фрагмент

1 Вход 2 Меры 3 Просмотра данных

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

Поскольку просмотрщик имеет возможность прокрутки. Возможно ли greyout/disable фрагмент в том случае, когда пользователь хочет измерить без входа.

Спасибо.

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

    <ImageButton 
     android:id="@+id/qt_deleteButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/qt_testtype" 
     android:layout_marginLeft="28dp" 
     android:layout_marginTop="18dp" 
     android:layout_toRightOf="@+id/qt_saveButton" 
     android:background="@drawable/border_button" 
     android:src="@drawable/delete" /> 

    <ImageButton 
     android:id="@+id/qt_saveButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignTop="@+id/qt_deleteButton" 
     android:layout_toRightOf="@+id/maintxt_measure" 
     android:background="@drawable/border_button" 
     android:src="@drawable/save" /> 

    <FrameLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" > 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:src="@drawable/main_unknown" /> 

    </FrameLayout> 

</RelativeLayout> 

Я редактировал файл макета выше, но нижний слой по-прежнему доступен для клика. Есть ли что-то, что я пропустил?

Благодаря

+0

Ну, логически, на макете «Измерение и просмотр данных» вы можете иметь FrameLayout с двумя слоями, в котором содержится все, что у вас было, и один сверху, который представляет собой слой серого цветного изображения, охватывающий весь экран, поэтому, если пользователь не входит в систему, это изображение будет отображаться, если пользователь имеет логин, вы установите его видимость на исчезновение. С этим изображением сверху другие элементы представления не получат никакого касания. –

+0

Hi WaiChun, согласно вашему предложению, я обновил свой XML-файл. однако кнопка внизу по-прежнему доступна для кликов. Спасибо – sean

+0

Сделайте это на своем изображении, реализуйте onClickListner, который вызовет функцию, которая абсолютно ничего не сделает, тогда она будет препятствовать доступу нижнего слоя. –

ответ

1

Извините, но нет, это то, как это должно, вероятно, выглядеть следующим образом:

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <!-- You may change this to your relative layout, just make sure it is fill_parent --> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="center"> 

     <!-- Everything related to your main activity goes here --> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/faderLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="center"> 

     <ImageView 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="#E0000000" 
      android:onClick="faderClicked" /> 

    </LinearLayout> 

</FrameLayout> 

Таким образом, в вашей деятельности, вы будете иметь функцию public void faderClicked(View v), где она не делает ничего, и вы контролируйте представление, изменяя видимость faderLayout.

+0

Да, он отлично работает! Спасибо. – sean

+0

Без проблем, рад, что помог. –

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