Ionic-framework: bug: Flash putih muncul saat beralih antar tab di Android

Dibuat pada 9 Jun 2015  ·  121Komentar  ·  Sumber: ionic-team/ionic-framework

Jenis : bug

Platform : tampilan web android 4.4

ketika beralih antar tab HANYA pada platform Android, aplikasi menunjukkan flash putih. Tidak menggunakan penyeberangan.Posting forum http://forum.ionicframework.com/t/white-flash-appearing-when-switching-between-tabs-on-android-in-1-0-0-stable/24774

Komentar yang paling membantu

Melihat ke ini besok orang-orang! :menyeringai:

Semua 121 komentar

Ada kabar tentang status masalah ini?

Memiliki masalah yang sama. Ada pembaruan?

+1

Berikan contoh minimal yang memiliki masalah ini.

Cukup buat aplikasi ionik baru (templat tab) ubah latar belakang menjadi warna apa saja, lalu putih. membangun dan menjalankan pada perangkat Android (4.4, saya diuji pada nexus 5) dan Anda akan melihat bahwa ada film putih untuk beberapa mili pada setiap perubahan tab.

Saya telah menemukan bahwa ini disebabkan oleh ion-header-bar yang didefinisikan ulang di setiap tampilan. Saya memindahkan ion-header-bar ke templat tata letak utama saya dan tidak lagi melihat kedipan. Saya percaya proyek yang dihasilkan secara default menempatkan bilah tajuk di setiap tampilan, itulah sebabnya Anda juga melihatnya di sana.

'ion-header-bar's dibuat secara otomatis untuk saya, di mana (dan bagaimana) Anda menggunakannya secara manual?

Jadi @GentryRiggen maksud Anda ion-nav-bar?

@mhartington Saya menggunakan menu sisi ion dengan tab ion di dalam konten menu sisi ion.

<ion-side-menus>
  <ion-side-menu side="left" class="left-side-menu">
    <ion-content drag-content="false" overflow-scroll="false" direction="y" delegate-handle="leftMenu">
      <div class="list">
        <a menu-close class="item item-icon-left" >Something</a>
        <a menu-close class="item item-icon-left" >Something</a>
        <a menu-close class="item item-icon-left" >Something</a>
      </div>
    </ion-content>
  </ion-side-menu>

  <ion-side-menu-content>
    <ion-header-bar align-title="center" class="bar-positive">
      <button class="button button-icon icon ion-navicon" menu-toggle="left"></button>
      <div class="titles">
            <h>TITLE</h1>
      </div>
    </ion-header-bar>

    <ion-tabs class="tabs-positive tabs-icon-only dark-background">
      <ion-tab>
        <ion-nav-view name="tab-1"></ion-nav-view>
      </ion-tab>

      <ion-tab>
        <ion-nav-view name="tab-2"></ion-nav-view>
      </ion-tab>

      <ion-tab>
        <ion-nav-view name="tab-3"></ion-nav-view>
      </ion-tab>
    </ion-tabs>
  </ion-side-menu-content>

</ion-side-menus>

Jangan gunakan ion-header-bar untuk itu, gunakan ion-nav-bar.

@mhartington Saya menggunakan 'ion-nav-bar' dan layar berkedip (sambil berpindah antar tab)...
jadi bagaimana Anda menyarankan untuk memperbaikinya?

tab "starter" sederhana dari ionic yang dibuat untuk Android menunjukkan flash antara menavigasi dan yang saya yakini menggunakan ion-nav-bar.

Hmm, saya tidak melihatnya dalam tes saya.

https://youtu.be/_ja8a08iSPE

Anda dapat melihatnya di video.. Ini adalah layar putih berkedip ketika Anda mengubah tab.. Itu muncul hanya beberapa milidetik.. Jika Anda ingin melihat lebih jelas, ubah warna latar belakang menjadi merah, biru, atau warna gelap apa pun.

Apakah Anda berbicara tentang bilah navigasi yang memudar?

Dia berbicara tentang layar putih (perimeter konten ion) yang muncul sebentar saat Anda mengganti tab.
Anda dapat melihatnya dengan jelas di video Anda saat pertama kali beralih dari "Status" ke "Obrolan". Tapi itu benar-benar muncul setiap saat.

@mhartington Saya melampirkan video dari aplikasi saya (gerakan lambat), Anda dapat melihatnya dengan jelas di sana.
Saya ingin mengambil tindakan dan membantu kalian untuk menyelesaikan masalah itu, tetapi saya membutuhkan setidaknya titik awal dari Anda.. di mana saya harus mulai?

link youtube : https://youtu.be/TTuNPlL6Fmg

Terima kasih.

Saya telah melihat kodenya dan bagi saya kesalahannya ada di fungsi tabSelected (arahan ionTab)
Tampaknya menyembunyikan tab sebelumnya sebelum menampilkan yang baru.

Retasan kotor yang saya buat ini tampaknya berhasil. Tapi saya ingin melihat perbaikan yang tepat.
Tambahkan saja batas waktu sekitar $ionicViewSwitcher.viewEleIsActive(childElement, false);

Baris 55025 dari ionic.bundle.js

$timeout(function () {
 $ionicViewSwitcher.viewEleIsActive(childElement, false);
}, 100);

Ini terjadi pada saya dengan:

  • Ionik, v1.0.1
  • Kordoba 5.3.3

Saya menjalankan Android 5.1.1 pada Nexus 4.

Untuk mereproduksinya, saya cukup membuat aplikasi starter "tab", mengubah warna navbar menjadi biru (misalnya dengan mengubah -stabil menjadi -positif) dan kedipan menjadi jelas. Itu benar-benar berkedip dengan navbar putih tetapi Anda tidak dapat melihat putih di atas putih yang berkedip.

Saya telah mencoba menambahkan gaya untuk memaksa waktu transisi ke 0 md di Android dan memverifikasi bahwa aplikasi telah menerapkan gaya ini ke item header apa pun dengan memeriksa dengan pemeriksa chrome terlampir dan memeriksa nilai CSS yang dihitung. Saya memeriksa ulang dengan menghapus gaya dan memverifikasi mereka beralih dari 0ms ke beberapa nomor lain (0.2ms atau 0.5ms - dan sebenarnya secepat efek berkedip).

Saya mencoba melakukan perbaikan @didbarbosa tetapi Chrome di browser dan aplikasi ponsel mengeluh bahwa $timeout tidak ditentukan. Ketika saya mencatat nilai $timeout, itu memang tidak ditentukan.

@lloy0076 Anda perlu memasukkannya ke dalam arahan

IonicModule
.directive('ionTab', [
  '$compile',
  '$ionicConfig',
  '$ionicBind',
  '$ionicViewSwitcher',
  '$timeout',
function($compile, $ionicConfig, $ionicBind, $ionicViewSwitcher,$timeout) {

@didbarbosa - Sebenarnya saya baru menyadari bahwa versi Ionic saya bukan rilis terbaru; jadi saya mengubah "bower.json" saya menjadi:

{
"nama": "HelloIonic",
"pribadi": "benar",
"devDependencies": {
"ionic": "driftyco/ionic-bower#~1",
"platform.js": "platform#~1.3.0"

...dan apakah Anda percaya tidak ada kedipan bahkan tanpa solusi $timeout...

Mungkin jika Anda mencoba hal yang sama dengan solusi transisi CSS, itu mungkin hanya "memperbaiki" dirinya sendiri - meskipun saya benci masalah yang secara ajaib memperbaiki dirinya sendiri seperti itu.

Ya, tampaknya menghilang dengan rilis malam.
Kabar baik :)

Sebenarnya itu tidak tetap untuk saya.

tidak diperbaiki untuk saya 2 :\

Ada berita tentang masalah ini?

Saya memiliki masalah ini di iOS juga.

@harryzun mengenai iOS silakan lihat https://github.com/driftyco/ionic/issues/4395

Di iOS itu bukan masalah yang sama

Saya baru saja mulai memperhatikan ini di Android juga beberapa saat setelah saya memutakhirkan ke v1.1. Tidak yakin kapan itu dimulai.

itu dimulai sekitar v1

Jika ada yang memiliki perbaikan (sementara), saya akan senang mendengarnya.

Saya bug yang sama ... ada yang punya info lebih lanjut?? :gurita:

Mungkin tidak terkait, tetapi saya memiliki masalah serupa sebelumnya, dan untuk beberapa alasan aneh menghapus cache: false dari definisi status saya untuk status tab saudara yang menyinggung menyelesaikan masalah. Saya tidak tahu mengapa, karena kami menggunakan pola yang sama ini, dengan kombo pengontrol+templat yang sama, di 3 tempat lain di pengaturan tab kami tanpa masalah apa pun.

memperbarui

Jadi saya hanya menghabiskan sedikit waktu untuk mencoba menyelesaikan masalah yang kami lihat, agak menarik dan sedikit kenaifan di pihak saya menyebabkan kedipan hitam sebelum stateChangeSuccess.

Jadi seperti yang disebutkan di atas, kami menggunakan pola yang sama di seluruh aplikasi kami, tetapi dengan satu perbedaan utama: status ini sebenarnya memiliki resolusi yang didukung API dalam definisi statusnya untuk mengatasi kekurangan yang saat ini kami miliki di bagian belakang kami yang tidak kami miliki. perlu dipertanggungjawabkan dengan status x3 lain yang menggunakan pola ini.

Status "obrolan" adalah saudara kandung dari status utama tab. Untuk mencapai status ini, Anda cukup mengklik anggota di tampilan utama dan Anda akan berakhir di status obrolan saudara. Saat menavigasi ke dalamnya dari saudara kandung, tidak ada kilatan hitam yang diamati, status utama akan terlihat hingga penyelesaian selesai, dan kemudian navigasi normal akan selesai. Saat menavigasi kembali ke tab (dari tab lain) dengan tampilan obrolan sebagai status saat ini dalam riwayat, ui-router + ionic akan segera menjalankan swap ke tab baru, tetapi layar hitam akan terlihat hingga penyelesaian telah selesai .

Ini juga masuk akal mengapa menghapus cache: false dan default ke true memperbaiki masalah.

Masuk akal jika Anda memikirkannya, saya kira. Semoga ini bisa menyelamatkan seseorang dari sakit kepala jika mereka menemukan ini melalui google (seperti yang saya lakukan).

Saya melacak ini ke baris ini:
https://github.com/driftyco/ionic/blob/af1bfef327e685585244c6051c4d38b98aa6c62a/js/angular/service/viewSwitcher.js#L194

          if (renderStart && renderEnd) {
            // CSS "auto" transitioned, not manually transitioned
            // wait a frame so the styles apply before auto transitioning
            //$timeout(onReflow, 16); <- original
            onReflow(); // removes flicker
          } else if (!renderEnd) {

Ini adalah penyebab kedipan satu bingkai saat tab dialihkan, karena tab baru tidak diatur untuk terlihat hingga 16 ms kemudian.

Saya tidak yakin apa maksud dari baris itu ketika tab terlibat, tetapi jika Anda mengganti panggilan $timeout dengan panggilan metode sederhana onReflow() , kinerja yang dirasakan sangat meningkat dan ada tidak berkedip lagi. Bahkan tidak di bilah navigasi.

@mhartington ada pemikiran tentang ini? Mungkin itu harus dibuat paling tidak dapat dikonfigurasi.

Tampaknya diperkenalkan oleh https://github.com/driftyco/ionic/commit/8ebde73d0b8afac1bf1c1787c90a72a28a88bc3a dari @adamdbradley

Sunting: perbaikan yang lebih baik tampaknya hanya mengubah kondisi if menjadi:

if (direction !== 'swap' && renderStart && renderEnd) {

Sunting2: Perbaikan yang lebih baik yang menghilangkan potensi efek samping adalah mengganti panggilan $timeout dengan:
ionic.requestAnimationFrame(onReflow);
Saya akan mengirim PR dengan itu.

Bagus sekali!
Memperbaiki masalah untuk saya.

Terima kasih banyak sobat.

Tidak bekerja untuk saya... Saya telah memperbarui file ionic-angular.js saya tetapi saya tidak melihat perubahan bahkan jika saya meningkatkan nilai batas waktu awal. Apakah saya melewatkan sesuatu?
Untuk nav bar yang berkedip saya menggunakan perbaikan ini https://forum.ionicframework.com/t/flickering-when-navigating-via-tabs-on-Android/27281 tetapi sekarang kontennya berkedip.

Akhirnya berfungsi tetapi masih berkedip sekali untuk setiap tab, tahu mengapa?

Apakah ada rencana rilis untuk masalah ini? 1.2 atau 1.3?

Ini termasuk dalam rilis 1.2 baru-baru ini.

+1 , apakah ada solusi lain?

wow ini masih berlangsung.eh..Apakah mengira tim inti akan memiliki ide bagus tentang apa ini. Adakah yang punya petunjuk bagus untuk kode sumber yang mungkin kita mulai bereksperimen?

Apakah 1.2 memperbaiki ini? Ada komitmen di sana yang seharusnya mengatasi masalah ini.

Bugnya masih ada di 1.2 hingga 1.2.2

Saya mencoba lagi dan itu terpecahkan jika Anda memasukkan:

ionic.requestAnimationFrame(onReflow);  

seperti yang dia katakan, dan bukan:

$timeout(function() {
              ionic.requestAnimationFrame(onReflow);
            });

Jelas, $timeout sedang melakukan sesuatu

@mlynch mungkin Anda ingat untuk apa ini? https://github.com/driftyco/ionic/commit/d0246cf975bb4022eb890d3b0c28964e3065644c#diff -e25bdd32bda2f4f00f01c823ec86b1f3

Sepertinya sudah rusak lagi.

Mungkin ini sebabnya:

jika kode diantrekan menggunakan $timeout, kode harus dijalankan setelah DOM dimanipulasi oleh Angular, dan setelah browser merender (yang dapat menyebabkan kedipan dalam beberapa kasus)

Meninjau untuk 1.2.5

Sayangnya, ini memecahkan #4782 yang menyebabkan tampilan belakang terkadang tidak bernyawa dengan benar. Menghapus $timeout mungkin solusi yang terlalu sederhana untuk ini.

masih memiliki masalah bahkan ketika saya menghapus batas waktu ..

+1

Punya masalah ini juga...

+1

+1

catatan, memperbarui bower.json Anda membantu (penyorotan yang benar), tetapi ada sedikit keterlambatan seperti yang disebutkan

{
"nama": "HelloIonic",
"pribadi": "benar",
"devDependencies": {
"ionic": "driftyco/ionic-bower#1.7.12", //INI, PASTIKAN SUDAH DIPERBARUI
"aws-sdk-js": "~2.0.9",
"bootstrap": "~3.2.0",
"platform.js": "platform#~1.3.1"
}
}

Bagaimanapun, sedikit flash hanya di android, dan itu hanya sepersekian detik.

Adakah yang bisa mengkonfirmasi bahwa 1.2.3 "copenhagen" memperbaiki masalah ini?

@mhartington @mlynch Saya dapat mengonfirmasi bahwa properti ini masih tidak berfungsi dengan versi 1.2.3. Lihatlah urutan tangkapan layar ini.

Saya pertama kali memulai di tab Tagihan saya seperti ini:
screen shot 2016-01-19 at 2 05 26 pm

Saya kemudian mengetuk tab Teman Sekamar saya dan langkah-langkah berikut terjadi (yang menyebabkan kedipan):

  1. Aplikasi mengatakan "Tagihan" untuk judul tetapi menampilkan tab "Teman Sekamar" yang di-cache
    screen shot 2016-01-19 at 2 05 38 pm
  2. Aplikasi kemudian menghapus semua konten, tetapi masih menampilkan judul "Tagihan"
    screen shot 2016-01-19 at 2 05 48 pm
  3. Aplikasi menunjukkan konten "Teman Sekamar"
    screen shot 2016-01-19 at 2 05 59 pm
  4. Aplikasi memudar dalam judul "Teman Sekamar"
    screen shot 2016-01-19 at 2 06 15 pm

Dengan semua langkah ini digabungkan, ini menciptakan kedipan yang mengerikan saat berpindah tab.

Untuk melihat bug yang terpengaruh, lihat video ini:
https://dl.dropboxusercontent.com/u/97539058/Bugs/tabs-bug.mp4

Hai, saya menyadari bahwa bug saya adalah masalah dengan menggunakan SQLite di aplikasi saya. Maaf bila membingungkan.

+1

+1

+1

Sepertinya masalah dengan batas waktu

masalahnya hilang begitu saja untuk saya! masalahnya terkait dengan cara saya membuat tab!
pastikan Anda membuatnya dengan cara yang baik, navigasi di dalam tab juga. jaga orang tua pengontrol ==> anak

tidak ada lagi flash putih

@princefr bisa

Untuk iOS, saya harus mengganti css[ionic.CSS.TRANSITION_DURATION] dengan css.WebkitTransition di ionic.bundle.js baris 47715 dan 47750

`// Transisi iOS
// -----------------------
provider.transitions.views.ios = function(memasukiEle, meninggalkanEle, arah, harusAnimate) {

function setStyles(ele, opacity, x, boxShadowOpacity) {
  var css = {};
  css.WebkitTransition = d.shouldAnimate ? '' : 0;
  css.opacity = opacity;
  if (boxShadowOpacity > -1) {
    css.boxShadow = '0 0 10px rgba(0,0,0,' + (d.shouldAnimate ? boxShadowOpacity * 0.45 : 0.3) + ')';
  }
  css[ionic.CSS.TRANSFORM] = 'translate3d(' + x + '%,0,0)';
  ionic.DomUtil.cachedStyles(ele, css);
}

var d = {
  run: function(step) {
    if (direction == 'forward') {
      setStyles(enteringEle, 1, (1 - step) * 99, 1 - step); // starting at 98% prevents a flicker
      setStyles(leavingEle, (1 - 0.1 * step), step * -33, -1);

    } else if (direction == 'back') {
      setStyles(enteringEle, (1 - 0.1 * (1 - step)), (1 - step) * -33, -1);
      setStyles(leavingEle, 1, step * 100, 1 - step);

    } else {
      // swap, enter, exit
      setStyles(enteringEle, 1, 0, -1);
      setStyles(leavingEle, 0, 0, -1);
    }
  },
  shouldAnimate: shouldAnimate && (direction == 'forward' || direction == 'back')
};

return d;

};

provider.transitions.navBar.ios = function(memasukiHeaderBar, meninggalkanHeaderBar, direction, shouldAnimate) {

function setStyles(ctrl, opacity, titleX, backTextX) {
  var css = {};
  css.WebkitTransition = d.shouldAnimate ? '' : '0ms';
  css.opacity = opacity === 1 ? '' : opacity;

  ctrl.setCss('buttons-left', css);
  ctrl.setCss('buttons-right', css);
  ctrl.setCss('back-button', css);

  css[ionic.CSS.TRANSFORM] = 'translate3d(' + backTextX + 'px,0,0)';
  ctrl.setCss('back-text', css);

  css[ionic.CSS.TRANSFORM] = 'translate3d(' + titleX + 'px,0,0)';
  ctrl.setCss('title', css);
}

function enter(ctrlA, ctrlB, step) {
  if (!ctrlA || !ctrlB) return;
  var titleX = (ctrlA.titleTextX() + ctrlA.titleWidth()) * (1 - step);
  var backTextX = (ctrlB && (ctrlB.titleTextX() - ctrlA.backButtonTextLeft()) * (1 - step)) || 0;
  setStyles(ctrlA, step, titleX, backTextX);
}

function leave(ctrlA, ctrlB, step) {
  if (!ctrlA || !ctrlB) return;
  var titleX = (-(ctrlA.titleTextX() - ctrlB.backButtonTextLeft()) - (ctrlA.titleLeftRight())) * step;
  setStyles(ctrlA, 1 - step, titleX, 0);
}

var d = {
  run: function(step) {
    var enteringHeaderCtrl = enteringHeaderBar.controller();
    var leavingHeaderCtrl = leavingHeaderBar && leavingHeaderBar.controller();
    if (d.direction == 'back') {
      leave(enteringHeaderCtrl, leavingHeaderCtrl, 1 - step);
      enter(leavingHeaderCtrl, enteringHeaderCtrl, 1 - step);
    } else {
      enter(enteringHeaderCtrl, leavingHeaderCtrl, step);
      leave(leavingHeaderCtrl, enteringHeaderCtrl, step);
    }
  },
  direction: direction,
  shouldAnimate: shouldAnimate && (direction == 'forward' || direction == 'back')
};

return d;

};`

Tampaknya diperbaiki untuk saya ketika saya mengubah baris ini https://github.com/driftyco/ionic/blob/master/js/angular/service/viewSwitcher.js#L142 menjadi:

callback && ionic.requestAnimationFrame(callback);

Tidak yakin apakah itu cara yang benar untuk memperbaikinya.

Apakah ini juga terjadi pada beberapa rilis iOS (mengingat bahwa laporannya ada pada rilis Android)?

Dari: Abdul Wahab [mailto:[email protected]]
Dikirim: Rabu, 10 Februari 2016 21:59
Kepada: driftyco/ionic [email protected]
Cc: David Lloyd [email protected]
Subjek: Re: Bug [ionik]: Flash putih muncul saat beralih antar tab di Android (#3907)

Untuk iOS, saya harus mengganti css[ionic.CSS.TRANSITION_DURATION] dengan css.WebkitTransition di ionic.bundle.js baris 47715 dan 47750

`// Transisi iOS
// -----------------------
provider.transitions.views.ios = function(memasukiEle, meninggalkanEle, arah, harusAnimate) {

fungsi setStyles(ele, opacity, x, boxShadowOpacity) {
var css = {};
css.WebkitTransition = d.shouldAnimate ? '' : 0;
css.opacity = opasitas;
if (boxShadowOpacity > -1) {
css.boxShadow = '0 0 10px rgba(0,0,0,' + (d.shouldAnimate ? boxShadowOpacity * 0.45 : 0.3) + ')';
}
css[ionic.CSS.TRANSFORM] = 'translate3d(' + x + '%,0,0)';
ionic.DomUtil.cachedStyles(ele, css);
}

var d = {
jalankan: fungsi(langkah) {
if (arah == 'maju') {
setStyles(memasukiEle, 1, (1 - langkah) * 99, 1 - langkah); // mulai dari 98% mencegah kedipan
setStyles(leavingEle, (1 - 0,1 * langkah), langkah * -33, -1);

} else if (direction == 'back') {
  setStyles(enteringEle, (1 - 0.1 * (1 - step)), (1 - step) * -33, -1);
  setStyles(leavingEle, 1, step * 100, 1 - step);

} else {
  // swap, enter, exit
  setStyles(enteringEle, 1, 0, -1);
  setStyles(leavingEle, 0, 0, -1);
}

},
shouldAnimate: shouldAnimate && (arah == 'maju' || arah == 'kembali')
};

kembali d;

};

provider.transitions.navBar.ios = function(memasukiHeaderBar, meninggalkanHeaderBar, direction, shouldAnimate) {

fungsi setStyles(ctrl, opacity, titleX, backTextX) {
var css = {};
css.WebkitTransition = d.shouldAnimate ? '' : '0ms';
css.opacity = opacity === 1 ? '' : opasitas;

ctrl.setCss('tombol-kiri', css);
ctrl.setCss('tombol-kanan', css);
ctrl.setCss('tombol kembali', css);

css[ionic.CSS.TRANSFORM] = 'translate3d(' + backTextX + 'px,0,0)';
ctrl.setCss('teks belakang', css);

css[ionic.CSS.TRANSFORM] = 'translate3d(' + titleX + 'px,0,0)';
ctrl.setCss('judul', css);
}

fungsi enter(ctrlA, ctrlB, langkah) {
jika (!ctrlA || !ctrlB) kembali;
var titleX = (ctrlA.titleTextX() + ctrlA.titleWidth()) * (1 - langkah);
var backTextX = (ctrlB && (ctrlB.titleTextX() - ctrlA.backButtonTextLeft()) * (1 - langkah)) || 0;
setStyles(ctrlA, langkah, judulX, backTextX);
}

fungsi cuti(ctrlA, ctrlB, langkah) {
jika (!ctrlA || !ctrlB) kembali;
var titleX = (-(ctrlA.titleTextX() - ctrlB.backButtonTextLeft()) - (ctrlA.titleLeftRight())) * langkah;
setStyles(ctrlA, 1 - langkah, titleX, 0);
}

var d = {
jalankan: fungsi(langkah) {
var memasukiHeaderCtrl = memasukiHeaderBar.controller();
var meninggalkanHeaderCtrl = meninggalkanHeaderBar && meninggalkanHeaderBar.controller();
if (d.arah == 'kembali') {
pergi(masukHeaderCtrl, keluarHeaderCtrl, 1 - langkah);
enter(meninggalkanHeaderCtrl, memasukiHeaderCtrl, 1 - langkah);
} lain {
enter(memasukiHeaderCtrl, meninggalkanHeaderCtrl, langkah);
meninggalkan(meninggalkanHeaderCtrl, memasukiHeaderCtrl, langkah);
}
},
arah: arah,
shouldAnimate: shouldAnimate && (arah == 'maju' || arah == 'kembali')
};

kembali d;

};`


Balas email ini secara langsung atau lihat di GitHub https://github.com/driftyco/ionic/issues/3907#issuecomment -182324500 . https://github.com/notifications/beacon/ABHsBD1Sp3tXsq8707UTfdVHgqSlxI0zks5pixaSgaJpZM4E82pl.gif

+1
berkedip di android..

1+

+1

guys cukup " cache : true " dalam keadaan "anda" agar halaman anda di-cache sebelum extract dan rendering berjalan dengan lancar

@Harish-di sini Bagaimana dengan yang pertama kali?

Ya, itu benar-benar bukan ide yang baik untuk menggunakan cache: benar hanya untuk tujuan ini

@Harish-sini . . Saya memiliki aplikasi yang menggunakan status yang sama untuk halaman yang berbeda. Yaitu tampilan detail yang membutuhkan beberapa parameter $state. Karena tampilannya sama dengan konten yang berbeda, saya tidak dapat menggunakan cache:false :)
Dan sepertinya itu juga bukan ide yang bagus untuk masalah khusus ini

Masih masalah yang sama di sini menjalankan 1.2.4-nightly-1917

+1

@princefr - ya, tolong jelaskan markup yang tepat untuk tab untuk mengatasi masalah ini

@princefr tolong jika Anda bisa menguraikan struktur tab

Ini masih menjadi masalah bagi saya dan cukup membuat frustrasi. Apakah ada gerakan, atau resolusi yang dipahami?

+1

+1

Melihat ke ini besok orang-orang! :menyeringai:

Ada masalah terkait dengan iOS yang akan saya tautkan di sini nanti malam. Saya bisa menirunya.

Terima kasih @mhartington!

Untuk menambahkan lebih banyak konteks, dalam situasi saya, saya menemukan bug itu ada dengan yang berikut:

Index.html
<ion-nav-view></ion-nav-view>

lihat-1.html
<ANY ELEMENT>Something</ANY ELEMENT><ion-nav-view></ion-nav-view>

sub-tampilan-1.html
<ANY></ANY>

Tapi TIDAK hadir ketika saya menghapus <ANY ELEMENT> dari view-1.html.

Jadi, dalam kasus saya, saya tidak dapat mencapai efek yang diinginkan untuk menunjukkan status anak di dalam status induk, tanpa sepenuhnya mengganti konten status induk.

Saya mencoba SEMUA cara ui-view/ion-view/ion-nav-view/ion-tabs/ion-pane/etc. Sama sekali tidak ada yang berhasil.

Masalah ini menggambarkan bug yang sama tetapi di iOS https://github.com/driftyco/ionic/issues/5888

@mhartington dapatkah Anda menguji dengan aplikasi konferensi? Saya dan @brandy sama-sama dapat

Bug di #5888 adalah untuk ionic2, saya tidak yakin basis kodenya cukup mirip untuk menjadi bug yang sama.

hey yall, terima kasih telah bersabar untuk yang satu ini, sangat menghargainya :senyum:

Jadi jika dilihat-lihat, ini seharusnya memengaruhi iOS dan Android dengan ionic 1.2.4, benar?

Juga, adakah yang bisa membuat ulang ini dengan aplikasi pembuka tab?

@mhartington ada di aplikasi https://github.com/driftyco/ionic/pull/4654 tetapi ternyata itu merusak sesuatu yang lain, dan kemudian ketika itu diperbaiki, ini rusak lagi.

Anda dapat melihatnya di video yang Anda posting: https://www.youtube.com/watch?v=_ja8a08iSPE&feature=youtu.be Perhatikan bagaimana alih-alih tab baru muncul, ada kilatan putih yang sangat singkat (1 bingkai, itu Sangat cepat).

@andreialecu baiklah, melihatnya juga,

https://youtu.be/R5EafRKTst0

Klip yang sama, hanya sangat melambat

Melihat PR, akan melihat apa yang bisa dilakukan dan menjaganya agar tidak merusak hal-hal lain :grin:

Hai semua! Jadi saya pikir saya sudah bisa membuat beberapa cara untuk ini. Saya telah membuka PR yang terlihat bagus dalam pengujian saya, tetapi akan senang mendengar umpan balik dari Anda terlebih dahulu.

Perubahan telah dilakukan pada cabang viewFlicker

https://github.com/driftyco/ionic/pull/5937

Jika Anda tidak keberatan menarik kode, membuat Ionic dari sumber, dan menguji perubahan di aplikasi Anda, kami dapat melihat apakah ini memperbaiki beberapa hal dan mengatasi bug ini :shipit:

Luar biasa. Apakah ini rubah khusus Android atau akankah iOS juga terlihat lebih baik?

@ctcampbell ATM android. Dalam pengujian saya, saya tidak dapat menyebabkan kedipan di iOS

Berikut adalah video singkat mendemonstrasikan PR

https://youtu.be/nWSuocu64FU

+1

@jordantomax apakah ini berarti PR bekerja dengan baik untuk Anda? :menyeringai:

Ups, tidak maaf. Hanya berlangganan feed. Saya bisa mengujinya. Apakah saya perlu mengkompilasi sesuatu untuk digunakan, saya melihat bahwa rilis tidak tersentuh oleh komit Anda.

ahh

Anda dapat mengikuti langkah-langkah ini.

git clone https://github.com/driftyco/ionic.git
cd ionic 
git checkout viewFlicker
npm install
gulp build

Dan Anda harus memiliki kode yang dikompilasi di dist/js/ionic.bundle.js
Anda seharusnya dapat menyalin/menempelkan kode itu ke dalam proyek pengujian dan mencobanya.

Tampaknya berfungsi dengan baik di aplikasi tab uji. Saya masih mengalami masalah dengan mem-flash di aplikasi saya. Saya menggunakan tab dan menu, tetapi tab hanya muncul di halaman tertentu. Saya ingin mengambil video untuk menunjukkan kepada Anda, bagaimana cara melakukannya?

Apakah Anda dapat membuat codepen minimal atau git repo yang dapat saya kloning dan uji?
Hanya pengaturan serupa dari aplikasi Anda

Ide bagus. Saya akan mencoba melakukannya malam ini atau besok pagi. Terima kasih atas bantuan Anda.

@mhartington Saya baru saja mengujinya di aplikasi saya dan kedipannya sepertinya hilang. :+1:

Saya telah menguji perbaikannya menggunakan tab starter pada Nexus 6 yang menjalankan pratinjau Android N, Nexus 7 2013 yang menjalankan 6.0.1, Moto X 2014 yang menjalankan 5.1 dan Nexus 7 2013 yang menjalankan 4.4.4 dan tidak melihat adanya flashing pada salah satu perangkat tersebut. Luar biasa !

@jordantomax beruntung mendapatkan contoh itu bersama?

@mhartington maaf, benar-benar kebanjiran! Saya berharap untuk bekerja pada hari Minggu.

@mhartington Saya baru saja menguji ini di aplikasi yang saya

@jordantomax , apakah Anda punya kesempatan untuk membuat contoh?

Terima kasih,
Dan

Hai, yang di sana,

Perbaikan ini berfungsi dengan baik, tetapi sepertinya plugin transisi halaman asli tidak berfungsi dengan baik ... transisi melakukan hal-hal gila setelah saya melakukan perbaikan ini. Apakah Anda pikir itu terhubung?

@tgensol Gunakan parameter default untuk plugin ini, ini berfungsi dengan baik dengan perbaikan ini!

Halo semua! Sepertinya melalui pengujian saya dan kalian menguji perbaikannya tampaknya berhasil, saya akan melanjutkan dan menutup masalah ini untuk saat ini. @jordantomax jika Anda mendapat kesempatan untuk melakukan tes itu bersama-sama, jangan ragu untuk memposting dan saya akan dengan senang hati membuka kembali (:. Juga @tgensol jika solusi di atas tidak memperbaiki masalah Anda, maukah Anda membuka masalah terpisah pada jam bug? Terimakasih semuanya!

Dengan perubahan besar dalam repo ionik, bagaimana kami mengkompilasi dan membangunnya?

1.x cabang sekarang Ionic 1.3.1 . Jika Anda mengkloning repo dan memeriksa cabang, Anda seharusnya dapat menjalankan gulp build untuk menghasilkan file yang dapat didistribusikan. Tolong beri tahu saya jika Anda memiliki masalah dengan ini.

Terima kasih,
Dan

Terima kasih. sudah download dist secara manual :D

+1

Saya telah memperbaiki ini. Ini terjadi terkait dengan pembaruan tampilan ionik perilaku bilah ion: bilah baru dibuat sebelum masuk dan menyembunyikan bilah lama (saat ini) dan bilahnya berkedip. Solusinya adalah menunda menyembunyikan bilah saat ini ke setelah memasuki acara. Silakan menulis kepada saya jika Anda memiliki beberapa pertanyaan.

@smcreator dapatkah Anda membagikan cuplikan kode?

Saya masih mendapat masalah yang sama .... potongan kode apa pun Terima kasih

Saya pikir masalah ini telah diperbaiki dalam versi ionik terbaru.

Saya memiliki masalah yang sama dan tanggapan dari @princefr adalah kuncinya. Saya memiliki beberapa bilah navigasi di atas tampilan. Saat menambahkan ion-nav-bar hanya di atas file tabs.html saya, saya memperbaiki masalah:

<ion-nav-bar class="my-custom-bar">
  <ion-nav-back-button class="button-clear">
    <i  class="button button-icon ion-android-arrow-back" ng-click="vm.goBack()"></i>
  </ion-nav-back-button>
</ion-nav-bar>

<ion-tabs>
....
</ion-tabs>

Terima kasih untuk masalah ini! Masalah ini sedang dikunci untuk mencegah komentar yang tidak relevan dengan masalah asli. Jika ini masih menjadi masalah dengan versi terbaru Ionic, harap buat masalah baru dan pastikan template terisi penuh.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat