如何在android中以小写显示文本?

时间:2015-08-31 04:18:49

标签: android android-layout android-fragments

我尝试在android中实现制表符。我能够在android中实现制表符但我的android文本显示在大写。我不想以大写字母显示我的制表符文本。 我们能否以与代码

中给出的格式相同的格式显示文本

这是我的清单文件

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="android:Theme.Holo">
        <!-- Customize your theme here. -->
        <item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
        <item name="android:textAllCaps">false</item>
    </style>


</resources>

清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.naveen.tabsfavourite" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

java代码

import android.app.ActionBar;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;


public class MainActivity extends FragmentActivity implements ActionBar.TabListener {
    ViewPager viewPager;
    FragmentpagerAdapter fragmentpagerAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final ActionBar actionBar =getActionBar();
        viewPager = (ViewPager) findViewById(R.id.pager);
        fragmentpagerAdapter =new FragmentpagerAdapter(getSupportFragmentManager());
        viewPager.setAdapter(fragmentpagerAdapter);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        actionBar.addTab(actionBar.newTab().setText("Stations").setTabListener(this));
        actionBar.addTab(actionBar.newTab().setText("fav Station").setTabListener(this));
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {

            }

            @Override
            public void onPageSelected(int i) {
            actionBar.setSelectedNavigationItem(i);
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });

    }


    @Override
    public void onTabSelected(ActionBar.Tab tab, android.app.FragmentTransaction ft) {

        viewPager.setCurrentItem(tab.getPosition());

    }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, android.app.FragmentTransaction ft) {

    }

    @Override
    public void onTabReselected(ActionBar.Tab tab, android.app.FragmentTransaction ft) {

    }
}

5 个答案:

答案 0 :(得分:2)

使用Design Support Library&gt;翼片

在styles.xml中为您的Tablayout添加样式

<style name="TabTextAppearance" parent="TextAppearance.Design.Tab">
    <item name="textAllCaps">false</item>
</style>

然后将该属性添加为:

<android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        app:tabTextAppearance="@style/TabTextAppearance"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

我测试了它。它会起作用。

由于

答案 1 :(得分:1)

你有两种选择

1-你可以动态设置    - 如果您不确定文本是否为小写,则必须使用string.toLowerCase()将其转换为小写:你必须设置TextView的行为

textView.setText(yourString.toLowerCase());
textView.setAllCaps(false);

2-你可以设置xml本身的行为

   <TextView
    ....
    ....
    android:allCaps = "false"
    />

答案 2 :(得分:0)

你可以尝试以下任何一种方法,但是你已经尝试了我在下面提到的第一个,你可以试试另一个

  • 在layout-v21中使用android:textAllCaps =“false”

  • 检查Allcaps的风格

    <style name="Theme.CustomTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:textAppearanceButton">@style/CustomTheme.ButtonTextAppearance</item>
    </style>
    
    <style name="CustomTheme.ButtonTextAppearance" parent="@style/Base.TextAppearance.AppCompat.Button">
    <item name="textAllCaps">false</item>
    <item name="android:textAllCaps">false</item>
    </style>
    

答案 3 :(得分:0)

  

试试这段代码。希望你的问题得到解决

 TextView tv =  (TextView) mTabHost.getTabWidget().getChildAt(index).findViewById(android.R.id.title); 
   tv.setAllCaps(false);  

答案 4 :(得分:0)

确定以小写在strings.xml中编写文本。或者使用string.toLowerCase()将其转换为小写,作为上面提到的droidev