Blc*_*knx 22 android android-layout android-view android-activity kotlin
我有一个简单的全屏活动.布局检查器显示Android提供的大型根布局层次结构,我不需要全屏显示.
Run Code Online (Sandbox Code Playgroud)
调用Tools > Android > Layout Inspector以查看生成的根模板.
要使其全屏,只需HelloWorld在布局中添加一个ID 到TextView并更新MainActivity.java:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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="com.blcknx.myapplication.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
标志正在隐藏导航,但它们不会删除未使用的布局.
使用简单的TextView.全屏显示.检查Tools > Android > Layout Inspector您删除根布局的距离.显示截图.显示你的代码.
您可以摆脱action_bar_container将活动的主题更改DarkActionBar为NoActionBar:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
</style>
Run Code Online (Sandbox Code Playgroud)
然后你会得到以下树:
如果你想要更多并且摆脱ContentFrameLayout,你可以做到这一点:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val contentView = findViewById(android.R.id.content)
val parent = contentView.parent as ViewGroup
parent.removeView(contentView)
LayoutInflater.from(this).inflate(R.layout.activity_main, parent)
}
这将是视图层次结构树:
不确定是否应该删除android.R.id.content视图,也许某些库假设应该存在这样的视图.
至于action_mode_bar_stubs:你不应该关心它们,只要它们是ViewStubs,它们不会影响整体性能,因为它们会被懒惰地膨胀到视图层次结构中.
是的,您可能正在寻找ConstraintLayout。它与 a 类似RelativeLayout,但具有更多可能性并且更易于使用。因为您可以将视图放置在视图中的任何位置,所以ConstraintLayout您可以摆脱所有不必要的布局,从而扁平化层次结构。
| 归档时间: |
|
| 查看次数: |
621 次 |
| 最近记录: |