这是经过编辑的版本!我是Android应用编程的新手,我认为这很难,不是java而是ui。我想获得一个类别列表。它们可以是listView或其他内容中带有textview的复选框。想法是用户可以按下框/标签/复选框/按钮,多选。我最终得到了复选框,因为它感觉最简单的方法,任何建议如何为最终用户提供最简单的解决方案?用户可以添加自己的类别,因此最后一行就像按钮,用户可以在其中添加新类别。
问题
如何获得这些类别复选框与设置栏,按钮等不重叠的布局? 部分解决:我将framelayout更改为LinearLayout,并将我的启动图像从imageView更改为android:background to layout。现在我可以看到一切,但订单不对。如果我将topframe移到顶部(它应该在哪里),我收到如下错误消息:
错误: java.lang.ClassCastException:android.widget.LinearLayout无法强制转换为android.widget.Button
ACTIVITY.xml
<LinearLayout
android:id="@+id/buttonContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom"
android:orientation="vertical" >
<Button
android:id="@+id/category"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_marginBottom="5dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:background="@drawable/white_button"
android:minHeight="40dp"
android:text="@string/category"
android:textColor="#ffffff"
android:textStyle="bold" />
<Button
android:id="@+id/tak"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:background="@drawable/white_button"
android:minHeight="40dp"
android:text="@string/take"
android:textColor="#ffffff"
android:textStyle="bold" />
<Button
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_marginBottom="5dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:background="@drawable/white_button"
android:minHeight="40dp"
android:text="@string/list"
android:textColor="#ffffff"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:id="@+id/topframe"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#99a8b3b9" >
<Button
android:id="@+id/settings_button"
android:layout_width="43dp"
android:layout_height="37dp"
android:background="@drawable/ic_sysbar_quicksettings" />
<TextView
android:id="@+id/top_category"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:text="@string/no_category_text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#FFFFFF" />
</LinearLayout>
答案 0 :(得分:1)
不要使用FrameLayout来构建这样的UI。 FrameLayout将所有子项放在左上角,这就是您的视图重叠的原因。我所看到的具有垂直方向的LinearLayout应该可以胜任。
例如使用这样的一个:
<LinearLayout
...
android:orientation="vertical">
...
<LinearLayout
android:id="@+id/topframe"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#99a8b3b9" >
<Button
android:id="@+id/settings_button"
android:layout_width="43dp"
android:layout_height="37dp"
android:background="@drawable/ic_sysbar_quicksettings" />
<TextView
android:id="@+id/top_category"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:text="@string/no_category_text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#FFFFFF" />
</LinearLayout>
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="377dp" >
</ListView>
...
</LinearLayout>