2017-01-05 46 views
0

我必须实现这样的视图。所有视图都是固定的,不滚动。自定义表带有边框的Android视图

Grid

我怎么能这样做呢?我应该使用哪些视图? GridLayout,TableLayout甚至RecyclerView。

+0

我想避免创建手动或静态XML表格行。 –

+0

您可以根据屏幕大小创建自定义视图并绘制每个元素。看看这个项目有一个自定义绘制的键盘布局https://github.com/Arjun-sna/android-passcodeview – arjun

+0

@CosminMihu看到我的答案在下面。如果有帮助,请将答案标记为正确。谢谢 –

回答

0

这是你所需要的确切的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="match_parent" 
    android:orientation="vertical" 
    android:layout_weight="2"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.5"> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:weightSum="5" 
      android:orientation="horizontal"> 
      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="4"> 

       <RelativeLayout 
        android:layout_marginTop="25dp" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"> 
        <TableLayout 
         android:layout_gravity="bottom" 
         android:gravity="bottom" 
         android:padding="6dp" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:stretchColumns="*"> 
         <TableRow 
          android:padding="5dp"> 
          <TextView 
           android:text="1"/> 
          <TextView 
           android:text="2"/> 
          <TextView 
           android:text="3"/> 
          <TextView 
           android:text="4"/> 
          <TextView 
           android:text="5"/> 
          <TextView 
           android:text="6"/> 
          <TextView 
           android:text="7"/> 
          <TextView 
           android:text="8"/> 
          <TextView 
           android:text="9"/> 


         </TableRow> 

         <TableRow 
          android:padding="5dp"> 
          <TextView 
           android:text="5"/> 
          <TextView 
           android:text="6"/> 
          <TextView 
           android:text="7"/> 
          <TextView 
           android:text="3"/> 
          <TextView 
           android:text="4"/> 
          <TextView 
           android:text="5"/> 
          <TextView 
           android:text="8"/> 
          <TextView 
           android:text="1"/> 
          <TextView 
           android:text="2"/> 
         </TableRow> 

         <TableRow 
          android:padding="5dp"> 
          <TextView 
           android:text="5"/> 
          <TextView 
           android:text="6"/> 
          <TextView 
           android:text="7"/> 
          <TextView 
           android:text="3"/> 
          <TextView 
           android:text="4"/> 
          <TextView 
           android:text="5"/> 
          <TextView 
           android:text="8"/> 
          <TextView 
           android:text="1"/> 
          <TextView 
           android:text="2"/> 
         </TableRow> 
        </TableLayout> 
       </RelativeLayout> 
      </LinearLayout> 
      <View 
       android:layout_width="1dp" 
       android:layout_height="match_parent" 
       android:background="@android:color/black"></View> 

      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1"> 

       <RelativeLayout 
        android:layout_marginTop="25dp" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"> 
        <TableLayout 
         android:layout_gravity="bottom" 
         android:gravity="bottom" 
         android:padding="6dp" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:stretchColumns="*"> 
         <TableRow 
          android:padding="5dp"> 
          <TextView 
           android:text=""/> 
         </TableRow> 

         <TableRow 
          android:padding="5dp"> 
          <TextView 
           android:text="5"/> 
         </TableRow> 

         <TableRow 
          android:padding="5dp"> 
          <TextView 
           android:text="5"/> 
         </TableRow> 
        </TableLayout> 
       </RelativeLayout> 
      </LinearLayout> 
     </LinearLayout> 

    </LinearLayout> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:background="@android:color/black"></View> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.5"> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:weightSum="5" 
      android:orientation="horizontal"> 
      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="4"> 
       <RelativeLayout 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"> 
        <TableLayout 
         android:padding="6dp" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:stretchColumns="*"> 
        <TableRow 
         android:padding="5dp"> 
         <TextView 
          android:text="1"/> 
         <TextView 
          android:text="2"/> 
         <TextView 
          android:text="3"/> 
         <TextView 
          android:text="4"/> 
         <TextView 
          android:text="5"/> 
         <TextView 
          android:text="6"/> 
         <TextView 
          android:text="7"/> 
         <TextView 
          android:text="8"/> 
         <TextView 
          android:text="9"/> 


        </TableRow> 

        <TableRow 
         android:padding="5dp"> 
         <TextView 
          android:text="5"/> 
         <TextView 
          android:text="6"/> 
         <TextView 
          android:text="7"/> 
         <TextView 
          android:text="3"/> 
         <TextView 
          android:text="4"/> 
         <TextView 
          android:text="5"/> 
         <TextView 
          android:text="8"/> 
         <TextView 
          android:text="1"/> 
         <TextView 
          android:text="2"/> 
        </TableRow> 

        <TableRow 
         android:padding="5dp"> 
         <TextView 
          android:text="5"/> 
         <TextView 
          android:text="6"/> 
         <TextView 
          android:text="7"/> 
         <TextView 
          android:text="3"/> 
         <TextView 
          android:text="4"/> 
         <TextView 
          android:text="5"/> 
         <TextView 
          android:text="8"/> 
         <TextView 
          android:text="1"/> 
         <TextView 
          android:text="2"/> 
        </TableRow> 
        </TableLayout> 
       </RelativeLayout> 
      </LinearLayout> 
      <View 
       android:layout_width="1dp" 
       android:layout_height="match_parent" 
       android:background="@android:color/black"></View> 

      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1"> 

       <RelativeLayout 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"> 
        <TableLayout 
         android:padding="6dp" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:stretchColumns="*"> 
         <TableRow 
          android:padding="5dp"> 
          <TextView 
           android:text=""/> 
         </TableRow> 

         <TableRow 
          android:padding="5dp"> 
          <TextView 
           android:text="5"/> 
         </TableRow> 

         <TableRow 
          android:padding="5dp"> 
          <TextView 
           android:text="5"/> 
         </TableRow> 
        </TableLayout> 
       </RelativeLayout> 
      </LinearLayout> 
     </LinearLayout> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"> 

    </LinearLayout> 



</LinearLayout> 

enter image description here