这是使用LinearLayout的我的xml。工具栏和按钮都位于屏幕顶部。但是我希望Button在中央水平并且在中央垂直。按钮也浮动到左侧而不是中心。
XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorVeryDark"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
<Button
android:id="@+id/button2"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="text"
android:textSize="22dp"
android:layout_gravity="center_vertical"
android:background="@color/colorPrimaryDark"
/>
</LinearLayout>
我该怎么做?
答案 0 :(得分:1)
试试这个:使用SqlCommand cmd = new SqlCommand("Select i.Name,i.Quantity,i.Price, (Select Sum(Quantity*Price) from InventorytransTemp where TableName=(Select top 1 TableName from InventorytransTemp) and PrintFiscal=1)as Total ,j.MainGroupItemCode from InventorytransTemp i join InventoryMainGroupitems j on i.CategoryID=j.MainGroupItemID where TableName=(Select top 1 TableName from InventorytransTemp) and PrintFiscal=1 ", con);
SqlDataReader read = cmd.ExecuteReader();
using (StreamWriter sw = new StreamWriter(@"C:\fiscal.txt"))
{
while (read.Read())
{
sw.Write("S/");
string tempString = (read["Name"].ToString());
if (tempString.Length > 20)
tempString = tempString.Substring(0, 20);
else
{
tempString = tempString.PadRight(20);
tempString = tempString.PadLeft(0);
}
sw.Write(tempString + "/");
String.Format("{0:0.000}", 0.5);
sw.Write(" ");
sw.Write(String.Format("{0:0.000}", double.Parse(read["Quantity"].ToString())).Replace(",", ".") + "/");
sw.Write(" ");
sw.Write(String.Format("{0:0.00}", double.Parse(read["Price"].ToString())).Replace(",", ".") + "/");
sw.Write(" 99/");
sw.Write(" " + read["MainGroupItemCode"].ToString() + "/");
sw.WriteLine();
}
sw.WriteLine(read["Total"].ToString());//I get error in this line invalid attempt to read when no data is present
sw.Close();
read.Close();
con.Close();
}
并使用RelativeLayout
作为android:layout_centerInParent="true"
Button
输出:
答案 1 :(得分:0)
不幸的是,LinearLayouts不是最好的。 FrameLayout,RelativeLayout或ConstraintLayout将为您提供执行所需操作的灵活性。
答案 2 :(得分:0)
尝试使用重力
<Button
android:id="@+id/okbutton"
android:layout_width="wrap_content"
android:layout_height="300dp"
android:text="text"
android:gravity="center"
android:layout_gravity="center_horizontal"
android:textSize="50sp" />
答案 3 :(得分:0)
使用RelativeLayout然后添加代码:
android:gravity="center"
android:layout_gravity="center_horizontal"
在您的Button XML中。
另外,您可以使用AndroidStudio的“设计”工具进行布局:您可以添加一个按钮,然后在预览中随意拖动。
但是,有很多这样的帖子:下次尝试更好地搜索:D
答案 4 :(得分:0)
在你的按钮
中添加这两行android:gravity="center"
android:layout_gravity="center_horizontal"
参考此图片以正确理解重力的使用
enter image description here https://i.stack.imgur.com/WYFLU.png
答案 5 :(得分:0)