Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中使字符串的宽度相同?_Android_Android Studio - Fatal编程技术网

如何在Android中使字符串的宽度相同?

如何在Android中使字符串的宽度相同?,android,android-studio,Android,Android Studio,有3个字符串,每个字符串的长度相同,这些字符串中有空格。在ListView控件中填充3个字符串后,我发现3行的宽度不一样 如何在Android中使字符串的宽度相同?谢谢 顺便说一句,我使用Android Studio。最小API为9 string1= "a b" string2= "aa b" string3= "aaa b" ListView lv=(ListView)findViewById(R.id.listView); String[] COUNTRIES=ne

有3个字符串,每个字符串的长度相同,这些字符串中有空格。在ListView控件中填充3个字符串后,我发现3行的宽度不一样

如何在Android中使字符串的宽度相同?谢谢

顺便说一句,我使用Android Studio。最小API为9

string1= "a      b"
string2= "aa     b"
string3= "aaa    b"

ListView lv=(ListView)findViewById(R.id.listView);
String[] COUNTRIES=new String[]{"a     b","aa    b","aaa   b"};
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, COUNTRIES));

string1=“a b”
string2=“aa b”
string3=“aaa b”
ListView lv=(ListView)findViewById(R.id.ListView);
字符串[]国家=新字符串[]{“AB”、“aa b”、“aaa b”};
lv.setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,COUNTRIES));

除非您使用的是单间距字体,否则实现您想要的目标将非常困难。非等距字体具有不同宽度的字符

但是,使用布局安排可以解决此问题。下面是一个例子:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="300dp"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.7">

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="AAA"
            android:id="@+id/textView4"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="AAAAA"
            android:id="@+id/textView5"/>
    </LinearLayout>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.3">

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="BBB"
            android:id="@+id/textView6"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="BBBB"
            android:id="@+id/textView7"/>
    </LinearLayout>
</LinearLayout>

上述代码将生成如下布局:


以编程方式将视图添加到我在一个程序中完成的线性布局中

xml(线性布局为行的数量)


对于(int i=0;i

试着理解代码并根据您的需要实施它

如果这对您来说不是一个大问题,您能在行布局中使用额外的视图来实现您正在做的事情吗。。与动态创建额外逻辑相比,事情会容易得多。可能添加一个线性布局作为父视图,然后将方向设置为水平,然后将两个视图添加到其中。谢谢!我可以选择什么样的单间距字体来适合所有手机,适合API 9及以上版本?好的,你可以使用任何字体,只要你将它们与你的应用程序一起发布(在APK内)。Android本身也内置了单间距字体。您可以使用它,而不必担心可用性。作为旁注,单间距字体不适合“正常”的使用情况。因为它的固定宽度对用户的眼睛来说可能不自然。谢谢!致里德里奥:请你看看我会的。但是你能接受我的回答吗?这似乎对你有帮助。当然,如果你感觉到了另一种情况,你可以忽略这一点。:)
  <LinearLayout
            android:id="@+id/ansrow2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="5dp"
            android:layout_marginTop="5dp"
            android:gravity="center"
            android:horizontalSpacing="4dp"
            android:numColumns="10"
            android:orientation="horizontal"
            android:paddingEnd="10dp"
            android:paddingStart="10dp"
            android:verticalSpacing="10dp" >
        </LinearLayout>


for (int i = 0; i < list2.size(); i++) {
                text = new TextView(MainActivity.this);
                text.setBackgroundColor(Color.WHITE);
                text.setGravity(Gravity.CENTER);
                text.setText("" + list2.get(i).toString().toLowerCase());
                text.setPadding(10, 10, 10, 10);
                text.setTextSize(35f);
                text.setTypeface(rail);

                text.setLayoutParams(new LinearLayout.LayoutParams(
                        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,
                        5f));

                text.setId(101 + i);
                if (i < 10) {
                    ansrow2.addView(text);
                } else {
                    ansrow1.addView(text);
                }
                text.setOnClickListener(this);
            }