工具栏隐藏android kotlin中的其他元素

工具栏隐藏android kotlin中的其他元素,android,toolbar,Android,Toolbar,我将Android Studio与Kotlin一起使用,我的工具栏有问题,当我创建它时,它会隐藏我活动中的其他元素=> 不带工具栏 MainActivity.kt class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.acti

我将Android Studio与Kotlin一起使用,我的工具栏有问题,当我创建它时,它会隐藏我活动中的其他元素=>

不带工具栏

MainActivity.kt

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main))

    val user = User("Bob", 20)
    findViewById<Button>(R.id.go_to_second).setOnClickListener {
        println("Lancement de la seconde activité")
        val intent = Intent(this, Second::class.java)
        intent.putExtra("user", user)
        startActivity(intent)
    }

    findViewById<Button>(R.id.bouton_dialogue).setOnClickListener {
        val confdial = ConfirmDialog()
        confdial.listener = object: ConfirmDialog.ConfDeleteListener {
            override fun onPositiveClick() {
                Log.i("MainActivity", "Recuperation du postive suppression dialog")
                val dd = FileListDialog()
                dd.show(supportFragmentManager, "onPositiveClick")
            }

            override fun onNegativeClick() {
                Log.i("MainActivity", "Confirmation du negative suppression dialog")
            }

        }
        confdial.show(supportFragmentManager, "confirmDelete")
    }
}
}
import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.v7.widget.Toolbar
import android.util.Log
import android.view.Menu
import android.view.MenuItem
import android.widget.Button
import android.widget.Toast

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val toolbar = findViewById<Toolbar>(R.id.toolbar)
    setSupportActionBar(toolbar)

    val user = User("Bob", 20)
    findViewById<Button>(R.id.go_to_second).setOnClickListener {
        println("Lancement de la seconde activité")
        val intent = Intent(this, Second::class.java)
        intent.putExtra("user", user)
        startActivity(intent)
    }

    findViewById<Button>(R.id.bouton_dialogue).setOnClickListener {
        val confdial = ConfirmDialog()
        confdial.listener = object: ConfirmDialog.ConfDeleteListener {
            override fun onPositiveClick() {
                Log.i("MainActivity", "Recuperation du postive suppression dialog")
                val dd = FileListDialog()
                dd.show(supportFragmentManager, "onPositiveClick")
            }

            override fun onNegativeClick() {
                Log.i("MainActivity", "Confirmation du negative suppression dialog")
            }

        }
        confdial.show(supportFragmentManager, "confirmDelete")
    }
}

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    menuInflater.inflate(R.menu.main_menu, menu)
    return true
}

override fun onOptionsItemSelected(item: MenuItem?): Boolean {
    when(item?.itemId){
        R.id.action_second -> {
            val intent = Intent(this, Menu_activiy::class.java)
            startActivity(intent)
            return true
        }
        R.id.action_delete -> {
            Toast.makeText(this, "supprimer", Toast.LENGTH_LONG).show()
            return true
        }
        else -> return super.onOptionsItemSelected(item)
    }
}
}
class MainActivity:AppCompatActivity(){
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main))
val user=用户(“Bob”,20)
findviewbyd(R.id.go\u to\u second).setOnClickListener{
println(“第二次行动之旅”)
val intent=intent(这是第二个::class.java)
intent.putExtra(“用户”,用户)
星触觉(意图)
}
findviewbyd(R.id.bouton_对话).setOnClickListener{
val confdial=ConfirmDialog()
confdial.listener=对象:ConfirmDialog.ConfDeleteListener{
覆盖onPositiveClick()的乐趣{
Log.i(“主活动”、“恢复正抑制对话框”)
val dd=FileListDialog()
dd.show(supportFragmentManager,“onPositiveClick”)
}
覆盖非连接单击(){
Log.i(“MainActivity”,“确认du负抑制对话框”)
}
}
confdial.show(supportFragmentManager,“confirmDelete”)
}
}
}
activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:layout_gravity="center"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:visibility="visible"/>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/go_to_second"
    android:visibility="visible"
    android:layout_gravity="center"
    android:text="go pr l'aventure" />

<Button
    android:id="@+id/bouton_dialogue"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:visibility="visible"
    android:text="lancement dialogue" />

结果=>

带工具栏

MainActivity.kt

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main))

    val user = User("Bob", 20)
    findViewById<Button>(R.id.go_to_second).setOnClickListener {
        println("Lancement de la seconde activité")
        val intent = Intent(this, Second::class.java)
        intent.putExtra("user", user)
        startActivity(intent)
    }

    findViewById<Button>(R.id.bouton_dialogue).setOnClickListener {
        val confdial = ConfirmDialog()
        confdial.listener = object: ConfirmDialog.ConfDeleteListener {
            override fun onPositiveClick() {
                Log.i("MainActivity", "Recuperation du postive suppression dialog")
                val dd = FileListDialog()
                dd.show(supportFragmentManager, "onPositiveClick")
            }

            override fun onNegativeClick() {
                Log.i("MainActivity", "Confirmation du negative suppression dialog")
            }

        }
        confdial.show(supportFragmentManager, "confirmDelete")
    }
}
}
import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.v7.widget.Toolbar
import android.util.Log
import android.view.Menu
import android.view.MenuItem
import android.widget.Button
import android.widget.Toast

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val toolbar = findViewById<Toolbar>(R.id.toolbar)
    setSupportActionBar(toolbar)

    val user = User("Bob", 20)
    findViewById<Button>(R.id.go_to_second).setOnClickListener {
        println("Lancement de la seconde activité")
        val intent = Intent(this, Second::class.java)
        intent.putExtra("user", user)
        startActivity(intent)
    }

    findViewById<Button>(R.id.bouton_dialogue).setOnClickListener {
        val confdial = ConfirmDialog()
        confdial.listener = object: ConfirmDialog.ConfDeleteListener {
            override fun onPositiveClick() {
                Log.i("MainActivity", "Recuperation du postive suppression dialog")
                val dd = FileListDialog()
                dd.show(supportFragmentManager, "onPositiveClick")
            }

            override fun onNegativeClick() {
                Log.i("MainActivity", "Confirmation du negative suppression dialog")
            }

        }
        confdial.show(supportFragmentManager, "confirmDelete")
    }
}

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    menuInflater.inflate(R.menu.main_menu, menu)
    return true
}

override fun onOptionsItemSelected(item: MenuItem?): Boolean {
    when(item?.itemId){
        R.id.action_second -> {
            val intent = Intent(this, Menu_activiy::class.java)
            startActivity(intent)
            return true
        }
        R.id.action_delete -> {
            Toast.makeText(this, "supprimer", Toast.LENGTH_LONG).show()
            return true
        }
        else -> return super.onOptionsItemSelected(item)
    }
}
}
导入android.content.Intent
导入android.support.v7.app.AppActivity
导入android.os.Bundle
导入android.support.v7.widget.Toolbar
导入android.util.Log
导入android.view.Menu
导入android.view.MenuItem
导入android.widget.Button
导入android.widget.Toast
类MainActivity:AppCompatActivity(){
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val toolbar=findViewById(R.id.toolbar)
设置支持操作栏(工具栏)
val user=用户(“Bob”,20)
findviewbyd(R.id.go\u to\u second).setOnClickListener{
println(“第二次行动之旅”)
val intent=intent(这是第二个::class.java)
intent.putExtra(“用户”,用户)
星触觉(意图)
}
findviewbyd(R.id.bouton_对话).setOnClickListener{
val confdial=ConfirmDialog()
confdial.listener=对象:ConfirmDialog.ConfDeleteListener{
覆盖onPositiveClick()的乐趣{
Log.i(“主活动”、“恢复正抑制对话框”)
val dd=FileListDialog()
dd.show(supportFragmentManager,“onPositiveClick”)
}
覆盖非连接单击(){
Log.i(“MainActivity”,“确认du负抑制对话框”)
}
}
confdial.show(supportFragmentManager,“confirmDelete”)
}
}
重写创建选项菜单(菜单:菜单?):布尔值{
菜单充气器。充气(右菜单。主菜单,菜单)
返回真值
}
覆盖选项ItemSelected(项:菜单项?):布尔值{
何时(项目?.itemId){
R.id.action_second->{
val intent=intent(此菜单为activiy::class.java)
星触觉(意图)
返回真值
}
R.id.action_delete->{
Toast.makeText(这个“supprimer”,Toast.LENGTH\u LONG.show())
返回真值
}
else->return super.onOptionsItemSelected(项目)
}
}
}
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">


<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="?attr/actionBarSize"
    android:layout_width="match_parent"
    android:background="@color/colorPrimary"/>


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:layout_gravity="center"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:visibility="visible"/>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/go_to_second"
    android:visibility="visible"
    android:layout_gravity="center"
    android:text="go pr l'aventure" />

<Button
    android:id="@+id/bouton_dialogue"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:visibility="visible"
    android:text="lancement dialogue" />

</LinearLayout>


因此,我们可以看到工具栏,但“Hello World”TextView等其他元素已消失

设置线性布局的方向:

android:orientation=“horizontal”
android:orientation=“vertical”

同时删除所有引用
ConstraintLayout
的属性。您的工具栏的宽度与父工具栏的宽度相匹配。这意味着工具栏宽度与父视图相同。其他视图仍然存在,但不可见,因为LinearLayout的方向是水平的。它们不在父视图中(LinearLayout)


必须将父布局方向更改为垂直或更改父视图类型

我猜问题与上述答案中所述的相同

未指定LinearLayout的方向时,将使用默认值,即水平。布局应该是列还是行?行使用“水平”,列使用“垂直”。默认值为水平

由于您没有给出任何方向,因此它是水平的,并将其他视图推到范围之外,因此您最好在线性布局中给出方向

android:orientation="vertical"

您可以在hello world文本视图中添加 android:layout_marginTop=“?attr/actionBarSize”