所以我有一个奇怪的问题。布局看起来像这样:
<LinearLayout
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/myText" />
<ProgressBar
android:id="@+id/progressBarHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
看起来很简单,但我的应用程序无法启动。我没有错误,但应用程序无法启动。但如果我从布局应用程序中删除标签成功启动。 我无法理解我错在哪里。有人能帮助我吗?
答案 0 :(得分:0)
这种布局无法正常工作,因为您没有设置LinearLayout的layout_width和layout_height属性。 尝试添加
android:layout_width="wrap_content"
android:layout_height="wrap_content"
到你的LinearLayout。
如上所述here: (Layouts: Layout Parameters)
所有视图组都包含宽度和高度(layout_width和layout_height),每个视图都需要定义它们。
答案 1 :(得分:0)
您的问题不一定与您的布局有关(当您错过了必需的属性时,您可能会在IDE中为您填写这些属性),它&#39 ; s带有ProgressBar
的定义。
您缺少必需的样式属性,该属性告诉框架要呈现哪个窗口小部件。
如果你在布局中使用它,结果效果(如果它甚至开始)是这样的:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/my_text"
/>
<ProgressBar
android:layout_width="209dp"
android:layout_height="wrap_content"
android:id="@+id/progressBar"/>
</LinearLayout>
结果:
如果您像下面的代码一样定义样式属性,那么结果会更好:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/my_text"
/>
<ProgressBar
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="209dp"
android:layout_height="wrap_content"
android:id="@+id/progressBar" android:progress="35"/>
</LinearLayout>
结果: