我开始编写我的第一个Android应用程序,我正在添加一些按钮。
我想要一个我已经管理的顶部和底部的横幅按钮,然后在相同尺寸的中间填充剩余空间的4个按钮。
有没有办法在没有试用和错误尺寸的情况下这样做,以便它可以在任何设备上运行?
这是我的代码 -
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
>
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<Button
android:text="Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:id="@+id/button5"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:id="@+id/button2"
android:layout_width="650px"
android:layout_height="1000px"
android:layout_above="@+id/button5"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:text="Button"
android:layout_width="650px"
android:layout_height="1000px"
android:layout_below="@+id/button1"
android:layout_alignRight="@+id/button2"
android:layout_alignEnd="@+id/button2"
android:id="@+id/button6" />
<Button
android:text="Button"
android:layout_width="650px"
android:layout_height="1000px"
android:layout_alignBottom="@+id/button6"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:id="@+id/button7" />
<Button
android:text="Button"
android:layout_width="650px"
android:layout_height="1000px"
android:layout_alignTop="@+id/button2"
android:layout_alignLeft="@+id/button7"
android:layout_alignStart="@+id/button7"
android:id="@+id/button8" />
</RelativeLayout>
答案 0 :(得分:1)
不使用任何库,您可以实现此目的。顶部和按钮按钮之间的空间将被平均分割为4(它不会是正方形,总是取决于屏幕尺寸)
public class PTGIndexVM
{
[Display(Name="Select Promotion")]
public int PromotionId { get; set; }
public List<SelectListItem> PromotionOptions { get; set; }
public IList<EditPTG> IndexList { get; set; }
public IList<Product> Products { get; set; }
public string wrapClass { get; set; }
/// <summary>
/// Members Setup
/// </summary>
public PTGIndexVM()
{
IndexList = new List<EditPTG>();
PromotionOptions = new List<SelectListItem>();
Products = new List<Product>();
Setup();
}
vm.Products = productLogic
.GetByAndInclude(x => x.PromotionID == PromotionId && x.WindowProduct == true && x.Active == true, new List<string>() { "Size", "ProductTemplate" })
.Where(prod => allPTG.Any(x => x.ProductID == prod.ProductID))
.OrderBy(prod => prod.ProductCode)
.Select(prod => prod)
.ToList();
foreach (var product in Model.Products)
{
<th class="center-text" title="@product.ProductTemplate.Vertical (V) x @product.ProductTemplate.Horizontal (H)">
@Html.DisplayFor(m => product.ProductCode)
</th>
}
}
答案 1 :(得分:1)
这是一个没有嵌套layout_weight属性的示例:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/top_button"
android:layout_width="match_parent"
android:layout_height="40dp" />
<Button
android:id="@+id/bottom_button"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentBottom="true"/>
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/top_button"
android:layout_above="@id/bottom_button"
android:useDefaultMargins="true"
android:columnCount="2">
<Button
android:layout_columnWeight="1"
android:layout_rowWeight="1"/>
<Button
android:layout_columnWeight="1"
android:layout_rowWeight="1"/>
<Button
android:layout_columnWeight="1"
android:layout_rowWeight="1"/>
<Button
android:layout_columnWeight="1"
android:layout_rowWeight="1"/>
</GridLayout>
</RelativeLayout>