2016-11-10 18 views
0

我有以下布局:如何在我的Android应用程序调整这些TextViews

enter image description here

正如你可以看到From DateTo Date因为字符在从和要标记的数量不对齐?

如何对齐它们?

这里是XAML布局:

<?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"> 


    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:orientation="horizontal" 
     android:layout_marginTop="5dip" 
     android:animateLayoutChanges="false"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:text="From" 
      android:paddingTop="10dp" 
      android:paddingLeft="10dp" 
      android:gravity="center_vertical|center_horizontal" 
      /> 
     <TextView 
      android:id="@+id/start_date" 
      android:layout_width="0px" 
      android:layout_height="wrap_content" 
      android:layout_weight="7" 
      android:singleLine="true" 
      android:paddingRight="4dp" 
      android:paddingTop="15dp" 
      android:text="10-11-2016" 
      android:layout_marginRight="0dp" 
      android:contentDescription="Start date" 
      style="@style/TextAppearance.EditEvent_SpinnerButton" /> 
     <TextView 
      android:id="@+id/start_time" 
      android:layout_width="0px" 
      android:layout_height="wrap_content" 
      android:layout_weight="4" 
      android:paddingTop="15dp" 
      android:contentDescription="Start Time" 
      android:text="13:58" 
      android:layout_marginLeft="0dip" 
      style="@style/TextAppearance.EditEvent_SpinnerButton" /> 
    </LinearLayout> 



    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:orientation="horizontal" 
     android:layout_marginTop="5dip" 
     android:animateLayoutChanges="false"> 


     <TextView 
      android:id="@+id/to_label" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="To" 
      android:paddingTop="10dp" 
      android:paddingLeft="10dp" 
      android:gravity="center_vertical|center_horizontal" 
     /> 

     <TextView 
      android:id="@+id/end_date" 
      android:layout_width="0px" 
      android:layout_height="wrap_content" 
      android:layout_weight="7" 
      android:singleLine="true" 
      android:paddingRight="4dp" 
      android:paddingTop="15dp" 
      android:text="11-11-2016" 
      android:layout_marginRight="0dp" 
      android:contentDescription="End date" 
      style="@style/TextAppearance.EditEvent_SpinnerButton" /> 
     <TextView 
      android:id="@+id/end_time" 
      android:layout_width="0px" 
      android:layout_height="wrap_content" 
      android:layout_weight="4" 
      android:paddingTop="15dp" 
      android:contentDescription="End Time" 
      android:text="23:59" 
      android:layout_marginLeft="0dip" 
      style="@style/TextAppearance.EditEvent_SpinnerButton" /> 


    </LinearLayout> 


</LinearLayout> 

和相关风格:

<style name="TextAppearance" parent="android:TextAppearance"> 
</style> 

<style name="TextAppearance.EditEvent_Spinner" parent="android:style/Widget.Holo.Light.Spinner"> 
    <item name="android:textSize">14sp</item> 
    <item name="android:textColor">#FF333333</item> 
    <item name="android:layout_marginRight">12dp</item> 
    <item name="android:layout_marginLeft">12dp</item> 
</style> 

<style name="TextAppearance.EditEvent_SpinnerButton" parent="TextAppearance.EditEvent_Spinner"> 
    <item name="android:paddingLeft">12dp</item> 
    <item name="android:paddingRight">12dp</item> 
</style> 
+0

也许你可以使用'wrap_content'与'minEms'和'maxEms'两者的 “从” 和 “到” 的TextView –

+0

用户weightsum为to_label和from_label – Pavya

+0

是否有可能将相同的固定dp大小设置为标签?如果不是,请考虑使用RelativeLayout而不是嵌套的LinearLayouts(让您可以水平和垂直对齐TextView) – 0X0nosugar

回答

1

将WeightSum设置为父级布局,然后将该权重总和值除以每个子视图的宽度。

试试这个

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dip" 
     android:animateLayoutChanges="false" 
     android:weightSum="2.5" 
     android:orientation="horizontal"> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:gravity="center_vertical|center_horizontal" 
      android:paddingLeft="10dp" 
      android:layout_weight=".5" 
      android:paddingTop="10dp" 
      android:text="From" /> 

     <TextView 
      android:id="@+id/start_date" 
      style="@style/TextAppearance.EditEvent_SpinnerButton" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_marginRight="0dp" 
      android:layout_weight="1.5" 
      android:contentDescription="Start date" 
      android:paddingRight="4dp" 
      android:paddingTop="15dp" 
      android:singleLine="true" 
      android:text="10-11-2016" /> 

     <TextView 
      android:id="@+id/start_time" 
      style="@style/TextAppearance.EditEvent_SpinnerButton" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_marginLeft="0dip" 
      android:layout_weight=".5" 
      android:contentDescription="Start Time" 
      android:paddingTop="15dp" 
      android:text="13:58" /> 
    </LinearLayout> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dip" 
     android:weightSum="2.5" 
     android:animateLayoutChanges="false" 
     android:orientation="horizontal"> 


     <TextView 
      android:id="@+id/to_label" 
      android:layout_width="0dp" 
      android:layout_weight=".5" 
      android:layout_height="wrap_content" 
      android:gravity="center_vertical|center_horizontal" 
      android:paddingLeft="10dp" 
      android:paddingTop="10dp" 
      android:text="To" /> 

     <TextView 
      android:id="@+id/end_date" 
      style="@style/TextAppearance.EditEvent_SpinnerButton" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="0dp" 
      android:layout_weight="1.5" 
      android:contentDescription="End date" 
      android:paddingRight="4dp" 
      android:paddingTop="15dp" 
      android:singleLine="true" 
      android:text="11-11-2016" /> 

     <TextView 
      android:id="@+id/end_time" 
      style="@style/TextAppearance.EditEvent_SpinnerButton" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="0dip" 
      android:layout_weight=".5" 
      android:contentDescription="End Time" 
      android:paddingTop="15dp" 
      android:text="23:59" /> 
    </LinearLayout> 
</LinearLayout> 
+0

似乎没有使用屏幕的整个宽度? –

+1

现在就看看,为父视图设置weightSum = 2.5。即2.5 = .5 + 1.5 + .5。父级布局权重总和=相应父级下的每个子视图的layout_weight总和 – young

+0

是的我现在明白了 - 我将它们更改为.5,1.75和.75,它现在按预期工作 –

1

试试这个:

<?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"> 


    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:orientation="horizontal" 
     android:layout_marginTop="5dip" 
     android:animateLayoutChanges="false"> 
     <TextView 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:text="From" 
      android:paddingTop="10dp" 
      android:paddingLeft="10dp" 
      android:gravity="center_vertical|center_horizontal" 
      android:layout_weight="0.20"/> 
     <TextView 
      android:id="@+id/start_date" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.60" 
      android:singleLine="true" 
      android:paddingRight="4dp" 
      android:paddingTop="15dp" 
      android:text="10-11-2016" 
      android:layout_marginRight="0dp" 
      android:contentDescription="Start date" 
      style="@style/TextAppearance.EditEvent_SpinnerButton" 
      android:layout_width="0dp"/> 
     <TextView 
      android:id="@+id/start_time" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.20" 
      android:paddingTop="15dp" 
      android:contentDescription="Start Time" 
      android:text="13:58" 
      android:layout_marginLeft="0dip" 
      style="@style/TextAppearance.EditEvent_SpinnerButton" 
      android:layout_width="0dp"/> 
    </LinearLayout> 


    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:orientation="horizontal" 
     android:layout_marginTop="5dip" 
     android:animateLayoutChanges="false"> 


     <TextView 
      android:id="@+id/to_label" 
      android:layout_height="wrap_content" 
      android:layout_width="0dp" 
      android:text="To" 
      android:paddingTop="10dp" 
      android:paddingLeft="10dp" 
      android:gravity="center_vertical|center_horizontal" 
      android:layout_weight="0.20"/> 

     <TextView 
      android:id="@+id/end_date" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.60" 
      android:singleLine="true" 
      android:paddingRight="4dp" 
      android:paddingTop="15dp" 
      android:text="11-11-2016" 
      android:layout_marginRight="0dp" 
      android:contentDescription="End date" 
      style="@style/TextAppearance.EditEvent_SpinnerButton" 
      android:layout_width="0dp"/> 
     <TextView 
      android:id="@+id/end_time" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.20" 
      android:paddingTop="15dp" 
      android:contentDescription="End Time" 
      android:text="23:59" 
      android:layout_marginLeft="0dip" 
      style="@style/TextAppearance.EditEvent_SpinnerButton" 
      android:layout_width="0dp"/> 


    </LinearLayout> 


</LinearLayout> 

输出

here

+0

我试过了 - 在较小的屏幕上,Label分成两行 –

+0

然后,您必须从该屏幕更改'layout_weight'值,例如,0.30(标签),0.50(start_date)和0.20(start_time)' – Aspicas

+0

使用该值进行操作,直到为您获得最佳解决方案。为什么? – Aspicas

相关问题