【发布时间】:2016-08-24 08:56:51
【问题描述】:
好的,这是我在 iOS 中可以在五分钟内完成的事情。但我似乎无法在 android 上获得它:
我只是想在按钮上显示一个进度条。我设法将进度条渲染得很好在按钮旁边像这样
使用此代码
<RelativeLayout
android:id="@+id/readBookContainer"
android:layout_below="@+id/image"
android:layout_marginLeft="@dimen/margin_medium"
android:layout_alignRight="@+id/ratingBar"
android:gravity="center"
android:layout_width="300dp"
android:layout_height="40dp">
<Button
android:id="@+id/readBook"
android:background="@drawable/button_read_now"
android:elevation="@dimen/margin_xsmall"
android:singleLine="true"
android:textSize="14sp"
android:text="@string/download"
android:layout_width="200dp"
android:gravity="left"
android:layout_height="match_parent"
android:textColor="@color/book_item_bg" />
<me.zhanghai.android.materialprogressbar.MaterialProgressBar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/read_progress_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
android:visibility="visible"
android:tint="#000000"
android:layout_toLeftOf="@id/readBook"
android:layout_marginRight="20dp"
style="@style/Widget.MaterialProgressBar.ProgressBar.Small" />
但是我似乎无法做到这一点:
我试过这样的东西(框架布局,相对布局)..
<FrameLayout
android:id="@+id/readBookContainer"
android:layout_below="@+id/image"
android:layout_marginLeft="@dimen/margin_medium"
android:layout_alignRight="@+id/ratingBar"
android:gravity="center"
android:layout_width="100dp"
android:layout_height="40dp">
<android.support.v4.widget.ContentLoadingProgressBar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/read_progress_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
android:visibility="visible"
android:tint="#000000"
android:layout_gravity="right|center"
style="@style/Widget.MaterialProgressBar.ProgressBar.Small" />
<Button
android:id="@+id/readBook"
android:background="@drawable/button_read_now"
android:elevation="@dimen/margin_xsmall"
android:singleLine="true"
android:textSize="14sp"
android:text="@string/download"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="@color/book_item_bg" />
但它不起作用..(我尝试用 android 替换库进度条但没有运气).. 想法?
更新
这是最后的样子(基于下面的正确答案):
<LinearLayout
android:id="@+id/readBook"
android:background="@drawable/button_read_now"
style="@style/Widget.AppCompat.Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:text="@string/download"
android:textAppearance="@style/TextAppearance.AppCompat.Button" android:textColor="#FFFFFF"/>
<me.zhanghai.android.materialprogressbar.MaterialProgressBar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/read_progress_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="5dp"
android:indeterminate="true"
android:visibility="invisible"
android:tint="#ffffff"
style="@style/Widget.MaterialProgressBar.ProgressBar.Small" />
</LinearLayout>
【问题讨论】:
-
是微调器还是进度条?
-
您是否尝试将
PorgressBar放在Button之后的FrameLayout中? -
是的@Alex 我做了,也没有用
-
@abbood 这是进度条,因为微调器的意思类似于 android 中的下拉菜单。那么您是否希望此进度条显示在按钮上以指示某些加载过程?
标签: java android layout android-widget android-relativelayout