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

问题描述 投票:0回答:5

我尝试在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) {

    }
}
android android-layout android-fragments
5个回答
2
投票

使用Design Support Library>标签

在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-您可以动态设置 - 如果您不确定文本是否为小写,则必须使用string.toLowerCase()将其转换为小写;并且您必须设置TextView的行为

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

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

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

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>

0
投票

试试这个代码。希望你的问题解决

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

0
投票

不可思议的是,您在strings.xml中以小写形式编写文本。或者使用string.toLowerCase()将其转换为小写,如上面提到的droidev

© www.soinside.com 2019 - 2024. All rights reserved.