标签: android-appcompat

Android 支持 v7 工具栏 setTitleTextAppearance 不起作用

我正在尝试更改工具栏标题的字体。这是我的工具栏布局:

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="#666666"
    app:titleTextAppearance="@style/MyText"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
Run Code Online (Sandbox Code Playgroud)

在我的 styles.xml 中

<style name="MyText">
    <item name="fontPath">fonts/myFont.ttf</item>
</style>
Run Code Online (Sandbox Code Playgroud)

如果我不设置app:titleTextAppearance,工具栏使用系统字体。我设置后,字体变小了,但是还是系统字体。难道我做错了什么?

任何建议、评论或答案都非常感谢。

编辑:

我尝试将样式移至styles-text.xml但没有运气

编辑2:

目前,我使用 SpannableString 和TypefaceSpan来完成这项工作。希望它能帮助某人。

android android-appcompat android-toolbar

3
推荐指数
1
解决办法
4925
查看次数

没有标题栏的 AppCompat Activity 的对话框主题

我需要一个活动的对话框主题并Fragments推送到它。下面是我应用于活动的样式

 <style name="DialogTheme" parent="Theme.AppCompat.Dialog">
        <item name="colorPrimary">@color/ColorPrimary</item>
        <item name="colorPrimaryDark">@android:color/transparent</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textColorPrimaryInverse">@color/white</item>
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

我在活动中将工具栏设置为支持操作栏。但它在工具栏上方显示了一个带有应用程序名称的额外标题栏。如何避免这种情况?请帮忙。

我尝试过requestWindowFeature(Window.FEATURE_NOTITLE),但没有效果。我尝试使用DialogFragment和设置 getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);也没有效果。

android android-appcompat

3
推荐指数
1
解决办法
6493
查看次数

自动调整 TextView 大小以适应更新的文本

我通过 appcompat 库使用 Android 自动调整大小的 TextView,如下所示:

<android.support.v7.widget.AppCompatTextView
    android:id="@+id/info"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:maxLines="1"
    app:autoSizeTextType="uniform"
    app:autoSizeMinTextSize="8sp"
    app:autoSizeMaxTextSize="14sp"
    app:autoSizeStepGranularity="0.5sp"
    android:text="@string/something" />
Run Code Online (Sandbox Code Playgroud)

这在第一次设置文本时效果很好 - 例如,如果需要,文本大小会缩小。

但第二次设置时,如果内容足够小,则文本大小不会再次增大。它仍保持适合先前内容的较小尺寸。

那么,调用自动调整大小的 TextView 的正确过程是什么setText,以便遵守自动调整大小参数?或者有没有办法强制 TextView 重新评估其内容并调整文本大小?

我尝试在调用之前将文本大小设置回默认值,setText但这似乎没有效果。

android textview android-appcompat

3
推荐指数
1
解决办法
558
查看次数

无法解析:com.android.support:appcompat-v7:30.0.0

我是初学者,在 Android Studio 中遇到此错误:-

错误:(26, 13) 无法解决:com.android.support:appcompat-v7:30.0.0 Install Repository and sync project
Show in File
Show in Project Structure dialog

这是我的 gradle 代码:-

apply plugin: 'com.android.application'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.0"
    defaultConfig {
        applicationId "com.example.piyushbairagi.demoapp"
        minSdkVersion 15
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:30.0.0'
    testCompile 'junit:junit:4.12'
}
Run Code Online (Sandbox Code Playgroud)

我使用 …

android android-appcompat android-support-library android-studio androidx

3
推荐指数
2
解决办法
1万
查看次数

从片段访问工具栏(MaterialToolbar)?

我如何从using访问 a Toolbar(实际上是 a MaterialToolbar)?Fragmentactivity.actionBar

main_layout.xml(摘录):

<com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:liftOnScroll="true">

        <com.google.android.material.appbar.MaterialToolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/AppTheme.PopupOverlay"
            android:background="#ffffff">

        </com.google.android.material.appbar.MaterialToolbar>
        
</com.google.android.material.appbar.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)

主要活动(摘录):

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        [..]
        setSupportActionBar(binding.toolbar)
}
Run Code Online (Sandbox Code Playgroud)

我的片段(摘录):

class MyFragment: Fragment() {
    [..]
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        val actNull = activity == null
        Timber.i("DEF: activity == null: $actNull")

        var barNull = activity?.actionBar == null
        Timber.i("DEF: activity.actionbar == null: $barNull")
    }
} …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-fragments android-toolbar material-components-android

3
推荐指数
1
解决办法
1831
查看次数

Android 12 忽略 showSoftInput,因为未提供 VIEW

我的应用程序在很多设备上运行良好。但自从在我自己的 Pixel 上升级到 Android 12 后,在调用 showSoftInput 或点击 Bottomsheet 中的 AppCompatEditText 时,会发生以下情况。

val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager;
imm.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT)
Run Code Online (Sandbox Code Playgroud)

Logcat 警告(应用程序中没有任何反应):

Ignoring showSoftInput() as view=androidx.appcompat.widget.AppCompatEditText{b5311a0 VFED..CL. .F.P..ID 84,0-996,118 #7f0900a7 app:id/et_bottomsheet aid=1073741827} is not served.
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法,例如请求焦点、使用 SHOW_FORCE 的 showSoftInput 但没有任何效果。

android android-appcompat android-edittext inputmethodmanager

3
推荐指数
1
解决办法
2616
查看次数

错误:检索项目的父项时出错:找不到与给定名称"@ style/Theme.Base.AppCompat.Dialog.FixedSize"匹配的资源

我在我的项目中集成了Aviary SDK.我正在使用Android Studio.

我还集成了Appcompact V7仍然出现以下错误:

错误:检索项目的父项时出错:找不到与给定名称"@ style/Theme.Base.AppCompat.Dialog.FixedSize"匹配的资源.

请帮助我们提供宝贵的意见.

resources android android-appcompat aviary android-studio

2
推荐指数
2
解决办法
4987
查看次数

使用Material Design Switch切换以前的版本

我正在创建一个材料设计应用程序,同时使用AppCompat支持库来支持运行froyo及更高版本的设备.我遇到了一个挑战,因为我正在创建一个材料设计应用程序,我需要使用材料设计元素.有没有办法在没有运行棒棒糖的设备上使用Material Design Switch

android android-appcompat android-2.2-froyo material-design android-5.0-lollipop

2
推荐指数
1
解决办法
1096
查看次数

Appcompact活动和动作栏活动之间的差异

在Android中,从扩展一个类之间的主要区别是什么AppCompatActivityActionBarActivity?这些课程有何不同?

android android-appcompat android-activity appcompatactivity

2
推荐指数
1
解决办法
2万
查看次数

AppCompat - Spinner在RelativeLayout中不起作用

我收到以下错误(使用最新的支持库v23.0和构建SDK 23):

案例1:Android 4.2.1

java.lang.NullPointerException
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:523)
at android.view.View.measure(View.java:15612)
at android.support.v7.internal.widget.ListViewCompat.measureHeightOfChildrenCompat(ListViewCompat.java:301)
at android.support.v7.widget.ListPopupWindow.buildDropDown(ListPopupWindow.java:1200)
at android.support.v7.widget.ListPopupWindow.show(ListPopupWindow.java:584)
at android.support.v7.widget.AppCompatSpinner$DropdownPopup.show(AppCompatSpinner.java:766)
at android.support.v7.widget.AppCompatSpinner.performClick(AppCompatSpinner.java:424)
at android.view.View$PerformClick.run(View.java:17439)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5341)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:929)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

案例2:Android 4.3

java.lang.NullPointerException
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:578)
at android.view.View.measure(View.java:16831)
at android.support.v7.internal.widget.ListViewCompat.measureHeightOfChildrenCompat(ListViewCompat.java:301)
at android.support.v7.widget.ListPopupWindow.buildDropDown(ListPopupWindow.java:1200)
at android.support.v7.widget.ListPopupWindow.show(ListPopupWindow.java:584)
at android.support.v7.widget.AppCompatSpinner$DropdownPopup.show(AppCompatSpinner.java:766)
at android.support.v7.widget.AppCompatSpinner.performClick(AppCompatSpinner.java:424)
at android.view.View$PerformClick.run(View.java:18786)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
at dalvik.system.NativeStart.main(Native Method) …
Run Code Online (Sandbox Code Playgroud)

android spinner android-appcompat android-spinner android-support-library

2
推荐指数
1
解决办法
3078
查看次数