我正在尝试将3个文本视图和ImageButtons添加到我的Android布局中。我一直试图调整它们的大小,以便所有6个组件都适合屏幕。
我相信这是一个非常简单的问题,但我无法解决它,它非常令人沮丧。
我该怎么办?
布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tvFirstTabMaths"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Maths"
android:textSize="15dp" />
<ImageButton
android:id="@+id/ibFirstTabMathsButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/mathsicon" />
<TextView
android:id="@+id/tvFirstTabMemory"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Memory"
android:textSize="15dp" />
<ImageButton
android:id="@+id/ibFirstTabMemoryButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/memoryicon" />
<TextView
android:id="@+id/tvFirstTabStroop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stroop"
android:textSize="15dp" />
<ImageButton
android:id="@+id/ibFirstTabStroopButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/stroopicon" />
</LinearLayout>
答案 0 :(得分:1)
尝试这样做:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent" android:orientation="vertical">
<TextView android:id="@+id/tvFirstTabMaths"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:text="Maths" android:textSize="15dp" android:layout_weight="1" />
<ImageButton android:id="@+id/ibFirstTabMathsButton"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:src="@drawable/mathsicon" android:layout_weight=".5" />
<TextView android:id="@+id/tvFirstTabMemory"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:text=" Memory" android:textSize="15dp" android:layout_weight="1" />
<ImageButton android:id="@+id/ibFirstTabMemoryButton"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:src="@drawable/memoryicon" android:layout_weight=".5" />
<TextView android:id="@+id/tvFirstTabStroop"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:text="Stroop" android:textSize="15dp" android:layout_weight="1" />
<ImageButton android:id="@+id/ibFirstTabStroopButton"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:src="@drawable/stroopicon" android:layout_weight=".5" />
</LinearLayout>
</ScrollView>
答案 1 :(得分:0)
如果您想让它们填满屏幕,您需要使用layout_weight
属性。
将所有android:layout_height="wrap_content"
更改为android:layout_height="0dp"
并添加android:layout_weight="1"
。
权重使视图共享可用空间。
重量可以是浮子,它可以是你想要的任何东西。它就像比例,如果你有1和2的东西,第二个将是第一个的两倍。
您也可以在LinearLayout上使用weight_sum="10"
,然后如果您让孩子的视图重量减去10,则会留下空白空间。例如,你的按钮将获得屏幕的6/10,并且4/10为空。
您还可以将没有重量的视图放在具有权重的视图的容器中。第一个视图将占用其空间,剩余空间将与其余视图共享。
答案 2 :(得分:0)
您是否正在使用线性布局,您应该将android:layout_weight设置为儿童。来自文档:&#34;该属性赋予&#34;重要性&#34;根据屏幕上应占用多少空间来估算视图。较大的权重值允许它扩展以填充父视图中的任何剩余空间。子视图可以指定权重值,然后视图组中的任何剩余空间按其声明权重的比例分配给子项#34;
答案 3 :(得分:0)
如果您想要所有6个视图水平放置,您应该尝试以编程方式获取屏幕大小,然后设置视图width / params。
view.setWidth(width/6);