我有一个由一些按钮组成的TableLayout。我想在TableLayout周围绘制一个矩形。我不确定如何做到这一点。根据我的研究,我发现我需要扩展View并使用此视图的onDraw事件。但是,我感到困惑的是“如何在视图中包含TableLayout”?
提前感谢您的回答。
我的示例代码是
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/numkeypad"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchColumns="*"
android:layout_gravity="bottom"
android:visibility="visible"
android:background="@color/contents_text"
>
<TableRow>
<LinearLayout android:layout_height="wrap_content"
android:layout_width="0dp"
android:background="#404040"
android:layout_span="2">
<Button android:id="@+id/Test1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="1"
android:textColor="#000000"
android:text="Test1"
android:textSize="20dp"
android:textStyle="bold"
>
</Button>
<Button android:id="@+id/Test2"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="1"
android:textColor="#000000"
android:text="Test2"
android:textSize="20dp"
android:textStyle="bold"
>
</Button>
</LinearLayout>
</TableRow>
<TableRow>
<LinearLayout android:layout_height="wrap_content"
android:layout_width="0dp"
android:background="#404040"
android:layout_span="2">
<Button android:id="@+id/Test11"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="1"
android:textColor="#000000"
android:text="Test11"
android:textSize="20dp"
android:textStyle="bold"
>
</Button>
<Button android:id="@+id/Test22"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="1"
android:textColor="#000000"
android:text="Test22"
android:textSize="20dp"
android:textStyle="bold"
>
</Button>
</LinearLayout>
</TableRow>
</TableLayout>
我的输出是
我想要的是像
答案 0 :(得分:0)
您可以扩展FrameLayout以根据 onDraw()方法中的尺寸绘制矩形(在调用 super 之后)。 onDraw()当然) 假设扩展类是com.example.MyFrameLayout。
然后您可以声明以下布局:
<?xml version="1.0" encoding="utf-8"?>
<com.example.MyFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/numkeypad"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchColumns="*"
android:layout_gravity="bottom"
android:visibility="visible"
android:background="@color/contents_text">
...
</TableLayout>
</com.example.MyFrameLayout>