我试图为这个帖子考虑一个更合适的标题,但却无法描述我的问题。
这是我正在使用的progressBar xml代码:
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progressBar"
android:layout_centerInParent="true"/>
以下是我的AppCompatActivity中的代码:
progressBar = (ProgressBar) findViewById(R.id.progressBar);
progressBar.setIndeterminate(true);
当progressBar启动时,它看起来像这样 - 看起来像progressBar的过时版本:
然后几秒后,它会变成这种类型的progressBar,看起来像新设计:
如何从头开始展示新设计,因为我不希望显示较旧的progressBar?
这是我用于我的活动的主题:
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@color/primary</item>
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/deep_orange_500</item>
<item name="colorControlNormal">@color/iron</item>
<item name="colorControlActivated">@color/white</item>
<item name="colorControlHighlight">@color/white</item>
<item name="android:textColorHint">@color/iron</item>
<item name="colorButtonNormal">@color/primary_darker</item>
<item name="android:colorButtonNormal">@color/primary_darker</item>
</style>
我注意到当我更改布局中项目的可见性时会发生这种情况。我有一个登录按钮,点击后会隐藏所有内容并显示progressBar。当我单击登录按钮时,屏幕返回显示顶部的状态栏几秒钟,progressBar反映旧的非物质主题progressBar。当状态栏再次消失时,屏幕上会出现新的progressBar。
这让我觉得当项目的可见性发生变化时主题不受尊重?
答案 0 :(得分:0)
我认为错误的是,我将这种风格加入了progressBar:
style="@style/Widget.AppCompat.ProgressBar"
删除它会使其恢复为素材主题progressBar
编辑:
经过进一步调查,实际上是由于facebook SDK中包含progressBar。我必须按照此主题中的建议将其删除:Android: How to hide progress circle in Facebook login复制并粘贴到此处以方便使用。
我和facebook sdk 4.x有同样的问题。当我点击Facebook登录按钮时,Facebook活动显示为半透明,但它显示进度条。幸运的是,我们可以在主题中禁用此进度条。所以Facebook活动被宣布为
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
我们所要做的就是创建一个继承自Theme.Translucent.NoTitleBar的样式并隐藏进度条:
<style name="FullyTranslucent" parent="android:Theme.Translucent.NoTitleBar">
<item name="android:progressBarStyle">@style/InvisibleProgress</item>
</style>
<style name="InvisibleProgress">
<item name="android:visibility">gone</item>
</style>
现在将活动的主题设置为我们的新主题:
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:theme="@style/FullyTranslucent" />
瞧!登录前的ProgressBar消失了。