我正试图在我的框架顶部放置一个水平进度条。但似乎有填充,我根本无法删除。有什么帮助吗?
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar android:id="@+id/flv_progress_bar"
android:layout_width="fill_parent"
style="@android:style/Widget.Holo.ProgressBar.Horizontal"
android:indeterminateOnly="true"
android:layout_height="wrap_content"
android:layout_gravity="top"/>
</FrameLayout>
答案 0 :(得分:31)
Pork'n'Bunny的答案适用于API级别16及以上的设备。该解决方案适用于所有设备。 只需用XML将它推高6dp即可。
<ProgressBar
android:id="@+id/progressbar_Horizontal"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="100"
android:layout_alignParentTop="true"
android:layout_marginTop="-6dp" />
答案 1 :(得分:4)
从它的外观来看,我认为它是由默认样式中使用的图像引起的
style="@android:style/Widget.Holo.ProgressBar.Horizontal"
(我所指的图片是这一图片:@android:drawable/progress_indeterminate_horizontal_holo
和@android:drawable/progress_horizontal_holo_dark
)
这些图片有很多画布背景;因此它显示了这个差距。
我的建议:
使用自定义图像为PregressBar设置样式。没有太多画布间距的那个。
答案 2 :(得分:4)
这个问题的完整解决方案如下。如果有人需要代码片段,这就是我所做的。
这是progress_indeterminate_horizontal_holo.xml
<animation-list
xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/progressbar_indeterminate_holo1" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo2" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo3" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo4" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo5" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo6" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo7" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo8" android:duration="50" />
将样式资源复制到我的本地样式文件。
<style name="Widget">
<item name="android:textAppearance">@android:attr/textAppearance</item>
</style>
<style name="Widget.ProgressBar">
<item name="android:indeterminateOnly">true</item>
<item name="android:indeterminateBehavior">repeat</item>
<item name="android:indeterminateDuration">3500</item>
</style>
<style name="Widget.ProgressBar.Horizontal">
<item name="android:indeterminateOnly">false</item>
<item name="android:indeterminateDrawable">@drawable/progress_indeterminate_horizontal_holo</item>
</style>
最后,在我的本地布局文件中将min height设置为4dp。
<ProgressBar
android:id="@+id/pb_loading"
style="@style/Widget.ProgressBar.Horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:indeterminate="true"
android:minHeight="4dp"
android:minWidth="48dp"
android:progressDrawable="@drawable/progress_indeterminate_horizontal_holo" />
答案 3 :(得分:2)
提出了另一种解决方案,因为drawable正如截图中所预期的那样工作。把它推高6dp吧。
mProgress = (ProgressBar) view.findViewById(R.id.fwv_progress);
mProgress.animate().withLayer().yBy(-6.0f*getResources().getDisplayMetrics().density).setDuration(0).start();
答案 4 :(得分:-2)
我认为问题在于高度属性。尝试将布局高度设置为某个值
<ProgressBar
android:id="@+id/progressBar"
android:max="100"
android:layout_width="match_parent"
android:layout_height="2dp"
style="@android:style/Widget.ProgressBar.Horizontal"
/>