2016-06-20 2 views
0

У меня странная ошибка при выходе из приложения и повторном входе в него, ShowcaseView не центрирован, я использую этот код в фрагменте. Это мой код:ShowcaseView не центрирован

target = new ViewTarget(iv_QR); 
      if (showcase == null) { 
       Button button = new Button(getContext()); 
       button.setText("Got it !"); 
       button.setEnabled(false); 
       button.setVisibility(View.INVISIBLE); 
       showcase = new ShowcaseView.Builder(getActivity()) 
         .setStyle(R.style.CustomShowcaseTheme2) 
         .replaceEndButton(button) 
         .setTarget(target) 
         .withMaterialShowcase() 
         .setContentTitle("QR Scan(Required)") 
         .setContentText("Please press the QR icon to scan the QR") 
         .build(); 

и это мой XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".Fragments.QRFragment"> 


    <ImageView 
     android:id="@+id/iv_QR" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:background="@mipmap/qricon" /> 
</RelativeLayout> 

Я прилагаю изображение: enter image description here

+0

Вы пробовали 'android: gravity =" center "' в вашем 'RelativeLayout'? В этом случае вы можете удалить 'android: layout_centerHorizontal' и' layout_ centerVertical'. – REG1

+0

это не помогает @ REG1 –

+0

, когда приложение сначала запускается, оно центрировано, но когда я уйду из него и введите его снова, эта проблема возникает –

ответ

0

Итак, предполагая, что проблема вызвана ShowcaseView создается до onCreateView() вернулся, подумайте о создании и показе своего ShowcaseView в методе onActivityCreated() вашего фрагмента.

Here is some sample code из ShowcaseView используется с фрагментами, попробуйте реализовать его в своем собственном коде. Как вы можете видеть, он также использует метод onActivityCreated().

+0

К сожалению, это не помогает, даже если у меня есть вид @ REG1 –

+0

Можете ли вы разместить больше кода (включая обновления), т. Е. Показать весь метод, из которого вы создаете экземпляр ShowcaseView и все другие связанные с ним коды? – REG1

+0

Thats много кода, я постараюсь объяснить себя лучше: я использую AppIntro с 3 фрагментами, я использую show case с первым фрагментом, и все в порядке, когда я закончил с первым фрагментом, который я хочу переместить в следующий фрагмент (тот, который вы видите на картинке), проблема при использовании onActivityCreated() Он показывает витрину немедленно, потому что showcase.build() отображает ее. Теперь витрины - одни на другом @ REG1 –