【问题标题】:Align text left and right in Android在Android中左右对齐文本
【发布时间】:2014-12-12 07:57:09
【问题描述】:

我目前在 Android 中对齐文本(左和右)时遇到问题... 我想制作如下格式的收据。

椰浆饭               RM 1.00

椰浆番茄           RM 1.20

Nasi Hujan Panas   RM 1.50

总价 :             RM 3.70

下面是我的代码:

      if(nsPutih==true)
      {

          tvOutput1.setText("Nasi Putih RM 1.00");
          tvOutput1.setVisibility(View.VISIBLE);

          price+=1;
      }
      else
      {
          tvOutput1.setVisibility(View.GONE);
      }

      if (nsTomato==true)
      {
          tvOutput2.setText("Nasi Tomato RM 1.20");
          tvOutput2.setVisibility(View.VISIBLE);
          price+=1.2;
      }
      else
      {
          tvOutput2.setVisibility(View.GONE);
      }

      if(nsHjanPanas==true)
      {
          tvOutput3.setText("Nasi Hujan Panas RM 1.50");
          tvOutput3.setVisibility(View.VISIBLE);
          price+=1.5;
      }
      else
      {
          tvOutput3.setVisibility(View.GONE);
      }

我希望收据像 IN A TABLE 那样对齐非常好(也就是说,所有这些 Nasi 元素都左对齐,价格右对齐。)请帮帮我!

下面是xml的代码。

 <?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"
android:padding="40dp" >

<ScrollView
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/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/textB"
    android:layout_below="@+id/textB"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignRight="@+id/textView1"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView2"
    android:textAppearance="?android:attr/textAppearanceMedium" />



   </LinearLayout>


   </ScrollView></RelativeLayout>

【问题讨论】:

  • 对于Price,您必须使用不同的TextViews。像列一样对齐 Textview。第一个是Text,第二个是Rs.
  • 您没有指定任何 layoutParams。在 xml 中创建布局要容易得多。您可以使用 GridView(我会这样做),但您也可以使用 TableView 或使用垂直 LinearLayout 和一些嵌套的水平 LinearLayout 的 LinearLayout 组合。如果您确实在 XML 中定义了布局,请发布它。
  • 分别使用两个texfields...名称和成本...为了更精确地使用表格布局...

标签: java android alignment android-tablelayout


【解决方案1】:

codePG 的answer 不会对齐右侧的项目。这将:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="end"/>
</LinearLayout>

【讨论】:

    【解决方案2】:

    你的XML,你需要连续添加两个textview,一个用于Nasi元素,另一个用于price元素。

    试试这样的,

    <?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"
        android:padding="40dp" >
    
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
    
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="10dp"
                    android:orientation="horizontal"
                    android:weightSum="2" >
    
                    <TextView
                        android:id="@+id/textView1"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:textAppearance="?android:attr/textAppearanceMedium" />
    
                    <TextView
                        android:id="@+id/textView2"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:textAppearance="?android:attr/textAppearanceMedium" />
                </LinearLayout>
    
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="10dp"
                    android:orientation="horizontal"
                    android:weightSum="2" >
    
                    <TextView
                        android:id="@+id/textView3"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:textAppearance="?android:attr/textAppearanceMedium" />
    
                    <TextView
                        android:id="@+id/textView4"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:textAppearance="?android:attr/textAppearanceMedium" />
                </LinearLayout>
    
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="10dp"
                    android:orientation="horizontal"
                    android:weightSum="2" >
    
                    <TextView
                        android:id="@+id/textView5"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:textAppearance="?android:attr/textAppearanceMedium" />
    
                    <TextView
                        android:id="@+id/textView6"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:textAppearance="?android:attr/textAppearanceMedium" />
                </LinearLayout>
            </LinearLayout>
        </ScrollView>
    
    </RelativeLayout>
    

    并更改您的 java 代码以匹配 XML 中设置的小部件的名称。如下所示,请注意并在需要时进行必要的更改。

    if(nsPutih==true)
          {
    
              tvOutput1.setText("Nasi Putih");
              tvOutput2.setText("RM 1.00");
              tvOutput1.setVisibility(View.VISIBLE);
              tvOutput2.setVisibility(View.VISIBLE);
    
              price+=1;
          }
          else
          {
              tvOutput1.setVisibility(View.GONE);
              tvOutput2.setVisibility(View.GONE);
          }
    
          if (nsTomato==true)
          {
              tvOutput3.setText("Nasi Tomato");
              tvOutput3.setVisibility(View.VISIBLE);
              tvOutput4.setText("RM 1.20");
              tvOutput4.setVisibility(View.VISIBLE);
    
              price+=1.2;
          }
          else
          {
              tvOutput3.setVisibility(View.GONE);
              tvOutput4.setVisibility(View.GONE);
          }
    
          if(nsHjanPanas==true)
          {
              tvOutput5.setText("Nasi Hujan Panas");
              tvOutput5.setVisibility(View.VISIBLE);
              tvOutput6.setText("RM 1.50");
              tvOutput6.setVisibility(View.VISIBLE)
    
              price+=1.5;
          }
          else
          {
              tvOutput5.setVisibility(View.GONE);
              tvOutput6.setVisibility(View.GONE);
          }
    

    我希望它有所帮助。对代码仍有疑问,请在下方评论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-16
      • 1970-01-01
      • 2015-04-24
      相关资源
      最近更新 更多