LINUX.ORG.RU

Помогите создать приложение под андроид

 , , , ,


0

1

Доброго времени суток, создал приложение под андроид на котлин. Цель такая - чтобы оно открывалось горизонтально, но в случае если стоит вертикальное отображение зафиксированным то приложение становится вертикальным - этого бы не хотелось. Еще один недостаток - отображается адресная строка и она не скрывается. Как я не промптил ИИ решить эти две проблемы не может.

//MainActivity.kt
package com.example.cars

import android.content.pm.ActivityInfo
import android.net.Uri
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.browser.customtabs.CustomTabsIntent

class MainActivity : ComponentActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // Принудительно устанавливаем ландшафтный режим (горизонтальный)
        requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE

        // Открываем Google без адресной строки
        val url = "https://www.linux.org.ru"

        val builder = CustomTabsIntent.Builder()
        builder.setShowTitle(false)  // Скрываем заголовок
        //builder.enableUrlBarHiding() // Скрываем адресную строку
        builder.setUrlBarHidingEnabled(true)// Скрываем адресную строку

        val customTabsIntent = builder.build()
        customTabsIntent.launchUrl(this, Uri.parse(url))
    }
}

Перемещено hobbit из mobile



Последнее исправление: doomer (всего исправлений: 1)

но в случае если стоит вертикальное отображение зафиксированным то приложение становится вертикальным. Вертикальным, тебе чё ещё надо ? Может что бы приложение становилось диагональным ?

anonymous
()

Проблема в том, что CustomTabsIntent открывает отдельное окно браузера. Из-за этого:

  • requestedOrientation влияет только на вашу MainActivity, но не на Chrome.
  • setUrlBarHidingEnabled(true) не убирает адресную строку полностью, а только разрешает ей скрываться при прокрутке.

Для такой задачи лучше использовать обычный WebView.

MainActivity.kt:

package com.example.cars

import android.content.pm.ActivityInfo
import android.os.Bundle
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.activity.ComponentActivity

class MainActivity : ComponentActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE

        val webView = WebView(this)

        webView.settings.apply {
            javaScriptEnabled = true
            domStorageEnabled = true
        }

        webView.webViewClient = WebViewClient()

        setContentView(webView)
        webView.loadUrl("https://www.google.com")
    }
}

И в AndroidManifest.xml у Activity:

<activity
    android:name=".MainActivity"
    android:screenOrientation="landscape"
    android:exported="true">

Также нужен доступ в интернет:

<uses-permission android:name="android.permission.INTERNET" />

Если нужен сайт без адресной строки и всегда горизонтально — CustomTabsIntent для этого не подходит, нужен WebView.

KillTheCat ★★★★★
()
Ответ на: комментарий от doomer

Ммм, по-Вашему два-три тега в код сайта сложнее добавить, чем программирование на Андроид?) А вообще это все, с чем Вы сейчас мучаетесь, делается без гемморроя через Sketchware…

Mishahack ★
()
Ответ на: комментарий от doomer

«Сайтик» это не приложение. Ты «делаешь» (без кавычек никуда) только ещё одну мусорную обёртку над вебом, которую ты почему-то решил кто-то захочет устанавливать.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Ты «делаешь» (без кавычек никуда) только ещё одну мусорную обёртку над вебом

Это удобно - одно приложение для всего - для любой платформы, плюса не нужно разбираться в swift, kotlin, winapi, linuxapi и тд и тп

doomer
() автор топика
Ответ на: комментарий от firkax

Это не «одно приложение», это «один сайт»

Это веб приложение - потому что ваши классические приложения это анахронизм - сейчас всё в вебе

doomer
() автор топика
Ответ на: комментарий от firkax

достаточно открыть его в браузере.

Попробуй влезть в выдачу гугла или яндекса хотя бы на первую страницу выдачи списка сайтов по СЕО запросу. А в гугл плей почти тоже самое, но как бы много точек размещения повышают шансы что ты не утонешь в тоне шлака

doomer
() автор топика
Ответ на: комментарий от firkax

сомнительная стратегия

Есть другие стратегии, но там нужны бабосы причём фантастические.

doomer
() автор топика
Ответ на: комментарий от firkax

Explanation: ТС же в конце концов не спрашивает, нужно его нинужно или не нужно. Он спрашивает технические подробности по запихиванию нинужно в приложение. Чего тут оффтоп разводить.

apt_install_lrzsz ★★★★
()
Ответ на: комментарий от doomer

ваши классические приложения это анахронизм - сейчас всё в вебе

Всё говно в вебе

// это не лично про «твоё» «приложение» это в пронципе про практику все писать на вебе

pihter ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария