我有一个看起来像这样的activity_main.xml 文件。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center"
tools:context=".MainActivity"
android:id="@+id/main_linear_layout">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:layout_gravity="center_horizontal"
android:textSize="30sp"
android:id="@+id/dice_text"/>
<Button
android:id="@+id/roll_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/roll"/>
</LinearLayout>
因此,当我尝试创建视图绑定并在 Activity 文件中使用它时,类 MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val root = binding.root
setContentView(root.main_linear_layout)
buttonClicked()
}
fun buttonClicked(): Unit {
val roll_button = binding.mainLinearLayout.roll_button
val text = binding.mainLinearLayout.dice_text
roll_button.setOnClickListener {
var randomNumber = Random().nextInt(6)+1
text.text = randomNumber.toString()
}
}
}
我有一些问题。自然,由于线性布局将 layout_gravity 设置为 center,因此它应该在屏幕中居中,无论是垂直还是水平。在 xml 的设计编辑器中就是这种情况,它应该是这样的。
但是当我运行应用程序时,在我的手机中,文本和按钮都会对齐 center_horizontal 但不是垂直对齐。
我也尝试给 center_vertical 但不起作用。
但是,如果我不使用视图绑定并使用 findViewById ,它就可以正常工作。
编辑:我已经从绑定中删除了 mainLinearLayout。所以它只是
setContentView(root)
我不工作。这就是我想要的样子,这就是它在 xml 的设计视图中的呈现方式(我已经删除了文本并添加了图像)
但是,当我运行它时,我得到了这个。在此处输入图像描述
PS我刚开始学习android开发