我遇到了一个问题:我想为主屏幕创建一个图标网格,因此我每个都使用4个TableRows
和3个TextViews
。TextViews
由图标和文字组成,文字长度不同。
我不知道在xml
文件中写什么,以使所有这些TextViews
连续具有相同的宽度。
我在logcat
中显示了它们的大小,所以我确定它们的宽度不同;)
我已经尝试过m1shk4
's solution,但这不起作用。
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" >
<TableRow
android:id="@+id/tableRow1"
android:layout_weight="1"
android:gravity="center" >
<TextView
android:id="@+id/textView1"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_width="match_parent"
android:clickable="true"
android:drawableTop="@drawable/nearby"
android:gravity="center"
android:onClick="goToArticles"
android:text="All Nearby" />
<TextView
android:id="@+id/textView2"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="true"
android:layout_width="match_parent"
android:drawableTop="@drawable/supermarket"
android:gravity="center"
android:onClick="goToMap"
android:text="Supermarkets" />
<TextView
android:id="@+id/textView3"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_width="match_parent"
android:drawableTop="@drawable/pharmacy"
android:gravity="center"
android:text="Pharmacy" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_weight="1"
android:gravity="center" >
<TextView
android:id="@+id/textView4"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_width="match_parent"
android:drawableTop="@drawable/fastfood"
android:gravity="center"
android:text="Fastfood" />
<TextView
android:id="@+id/textView5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="true"
android:drawableTop="@drawable/departmentstores"
android:gravity="center"
android:onClick="displaySizes"
android:text="Department Stores" />
<TextView
android:id="@+id/textView6"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_width="match_parent"
android:drawableTop="@drawable/petrol"
android:gravity="center"
android:text="Petrol Stations" />
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_weight="1"
android:gravity="center" >
<TextView
android:id="@+id/textView7"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@drawable/electronics"
android:gravity="center"
android:layout_width="match_parent"
android:text="Electronics" />
<TextView
android:id="@+id/textView8"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_width="match_parent"
android:drawableTop="@drawable/diy"
android:gravity="center"
android:text="DIY Stores" />
<TextView
android:id="@+id/textView9"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_width="match_parent"
android:drawableTop="@drawable/banking"
android:gravity="center"
android:text="Banks" />
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_weight="1"
android:gravity="center" >
<TextView
android:id="@+id/textView10"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_width="match_parent"
android:drawableTop="@drawable/fashion"
android:gravity="center"
android:text="Fashion & Clothing" />
<TextView
android:id="@+id/textView11"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_width="match_parent"
android:drawableTop="@drawable/autoparts"
android:gravity="center"
android:text="Auto Service" />
<TextView
android:id="@+id/textView12"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_width="match_parent"
android:drawableTop="@drawable/more"
android:gravity="center"
android:text="All Categories" />
</TableRow>
</TableLayout>
任何想法?
谢谢 :)
最佳答案
由于TableRow
代表水平方向的LinearLayout
,因此weight属性应与layout_width="0dp"
一起用于子视图。因此,为了使TextView
中的每个TableRow
具有相同的宽度,请替换
android:layout_width="match_parent"
与
android:layout_width="0dp"
连续的每个
TextView
。关于android - 在TableRow中创建具有相同宽度的TextView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24042857/