Rumah  >  Artikel  >  hujung hadapan web  >  Perkara yang perlu dilakukan jika teks Android di bahagian atas uniapp tidak dipusatkan

Perkara yang perlu dilakukan jika teks Android di bahagian atas uniapp tidak dipusatkan

PHPz
PHPzasal
2023-04-27 09:07:542637semak imbas

Dengan perkembangan Internet mudah alih, semakin ramai orang mula menggunakan aplikasi mudah alih (APP) untuk memenuhi keperluan hidup dan kerja mereka. Dalam proses membangunkan APP, rangka kerja pembangunan-uniapp merentas platform telah digemari dan digunakan oleh lebih ramai pembangun. Walau bagaimanapun, kadangkala anda akan menghadapi beberapa masalah semasa pembangunan APP, salah satunya ialah masalah teks Android di bahagian atas uniapp tidak dipusatkan. Artikel ini menerangkan punca dan penyelesaian kepada masalah ini.

1. Penerangan masalah

Apabila menggunakan uniapp untuk membangunkan APL Android, kita mungkin menghadapi masalah: penjajaran teks teratas adalah berbeza pada telefon Android yang berbeza, menyebabkan teks tidak menjadi berpusat. Seperti yang ditunjukkan dalam gambar di bawah:

Perkara yang perlu dilakukan jika teks Android di bahagian atas uniapp tidak dipusatkan

2. Punca masalah

Punca masalah ini ialah telefon Android yang berbeza menggunakan ketinggian sistem yang berbeza bar navigasi. , dan ketinggian bar navigasi tersuai yang digunakan oleh APP ditetapkan, menyebabkan ketinggian bar navigasi sistem tidak konsisten dengan ketinggian bar navigasi tersuai, menyebabkan teks tajuk tidak dipusatkan.

3. Penyelesaian

Untuk menangani masalah ini, kita boleh menggunakan penyelesaian berikut:

1 secara manual mengira offset

Boleh dikira secara manual untuk menyelesaikan masalah ini. Dapatkan ketinggian bar navigasi sistem melalui JS (memandangkan ketinggian bar navigasi sistem berbeza pada model yang berbeza, ia perlu diperoleh secara dinamik), dan kemudian bahagikan perbezaan antara ketinggian bar navigasi tersuai dan ketinggian bar navigasi sistem sebanyak 2 untuk mendapatkan offset. Akhir sekali, gunakan CSS untuk mengimbangi kedudukan teks tajuk. Kodnya adalah seperti berikut:

// 获取系统导航栏的高度
const statusBarHeight = uni.getSystemInfoSync().statusBarHeight
// 获取自定义导航栏的高度
const customHeight = 64
// 计算偏移量
const offset = statusBarHeight + (customHeight - statusBarHeight) / 2
// 设置标题文字偏移
uni.setNavigationBarTitle({
  title: '标题文字',
  success() {
    uni.createSelectorQuery()
      .in(this)
      .select('.uni-title')
      .boundingClientRect(rect => {
        const left = uni.getSystemInfoSync().windowWidth / 2 - rect.width / 2
        uni.setNavigationBarTitle({
          title: ' ',
          success() {
            setTimeout(() => {
              uni.setNavigationBarTitle({
                title: '标题文字',
                complete() {
                  uni.createSelectorQuery()
                    .in(this)
                    .select('.uni-title')
                    .boundingClientRect(rect => {
                      uni.setNavigationBarTitle({
                        title: ' ',
                        success() {
                          uni.setNavigationBarTitle({
                            title: '标题文字',
                            complete() {
                              uni.createSelectorQuery()
                                .in(this)
                                .select('.uni-title')
                                .boundingClientRect(rect => {
                                  uni.setNavigationBarTitle({
                                    title: ' ',
                                    success() {
                                      uni.setNavigationBarTitle({
                                        title: '标题文字',
                                        success() {
                                          uni.setNavigationBarTitle({
                                            title: ' ',
                                            success() {
                                              const css = `
    .uni-title{
      transform: translateY(${offset}px);
      font-size: 18px;
    }
    `
                                              uni.setNavigationBarColor({
                                                frontColor: '#000000',
                                                backgroundColor: '#ffffff',
                                                success() {
                                                  if (uni.getSystemInfoSync().platform == 'android') {
                                                    uni.createSelectorQuery()
                                                      .select('#nav-bar')
                                                      .boundingClientRect(rect => {
                                                        const styleEl = document.createElement('style')
                                                        styleEl.type = 'text/css'
                                                        styleEl.appendChild(document.createTextNode(css))
                                                        document.head.appendChild(styleEl)
                                                        document.querySelector('.uni-title').style.height = rect.height + 'px'
                                                      })
                                                      .exec()
                                                  }
                                                }
                                              })
                                            }
                                          })
                                        }
                                      })
                                    }
                                  })
                                })
                            }
                          })
                        }
                      })
                    })
                }
              })
            }, 300)
          }
        })
      })
  }
})

2. Gunakan pemalam

Anda juga boleh menggunakan penyelesaian yang disediakan oleh uni-app untuk masalah ini - pemalam App-plus StatusBar. Pemalam ini boleh memaparkan tajuk di tengah pada peranti Android yang berbeza Untuk penggunaan khusus, sila rujuk dokumentasi yang disediakan oleh tapak web rasmi uni-app: https://uniapp.dcloud.net.cn/api/plugins/. bar status.

4. Ringkasan

Masalah bahawa teks Android di bahagian atas uniapp tidak berpusat sebenarnya disebabkan oleh ketinggian bar navigasi yang berbeza pada peranti Android yang berbeza secara manual mengimbangi atau gunakan pemalam App-plus StatusBar untuk menyelesaikan masalah ini. Saya harap pengenalan dalam artikel ini akan membantu pembangun yang menghadapi masalah ini.

Atas ialah kandungan terperinci Perkara yang perlu dilakukan jika teks Android di bahagian atas uniapp tidak dipusatkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn