我正在开发一个应用程序,有100个按钮。我想将所有按钮放在屏幕内。我正在使用一个GridLayout,问题就在于我所遇到的问题就是按钮已经离开了屏幕。
这是代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_main"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".MainActivity"
tools:showIn="@layout/app_bar_main"
android:layout_column="1">
<GridLayout
android:id="@+id/GridLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnCount="6"
android:rowCount="17"
android:orientation="vertical">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
app:srcCompat="@drawable/numero_1"
android:id="@+id/button1"/>
我的问题是:这可能吗?这是最好的方法吗?
我做了其他测试,我改变了图像的大小。结果不是我预期的标题
具有不同尺寸图像的结果
正如您在第二张图片中看到的那样,行中的按钮位于屏幕内,但按钮的位置不正常,行的最后一个按钮和屏幕的末尾之间有很多空间。
我正在寻找的解决方案是,布局不允许按钮离开屏幕,并且如果屏幕尺寸不同,则会自动调整按钮和边缘之间的空间大小。布局将自动适应屏幕的大小。
答案 0 :(得分:0)
我认为这是不可能的。我建议你在一个水平使用6个垂直LinearLayouts,在内部使用重量1。我知道这不是最优化的方式,但它最简单。另一个是保持GridLayout并计算图像的大小并从Java代码设置它们的大小。