我有一个很大的“登录”按钮,在我的应用程序。 当用户点击这个按钮,我想替换文本“中的记录......”,它靠左对齐,而不是中心,把右侧的旋转圆(但仍按钮内)。 我想使用基本上在其他地方相同的按钮(但具有不同的初始和加载文本)在我的应用程序。
什么是做到这一点的最巧妙的方法? 对于实际的纺纱图形,我正打算使用@drawable/spinner_white_16
自带了Android。
谢谢。
我有一个很大的“登录”按钮,在我的应用程序。 当用户点击这个按钮,我想替换文本“中的记录......”,它靠左对齐,而不是中心,把右侧的旋转圆(但仍按钮内)。 我想使用基本上在其他地方相同的按钮(但具有不同的初始和加载文本)在我的应用程序。
什么是做到这一点的最巧妙的方法? 对于实际的纺纱图形,我正打算使用@drawable/spinner_white_16
自带了Android。
谢谢。
您可以使用含有一个TextView和ImageView的一个RelativeLayout的您自己的按钮。
<RelativeLayout android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
onClick="[yourLoginMethod]" >
<TextView android:id="@+id/login_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Log In" />
<ImageView android:id="@+id/login_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/login_text"
android:visibility="gone" />
</RelativeLayout>
然后无论你的登录方法被调用,改变TextView的内容,使其对准父母的权利,而ImageView的可见性设置为可见。
loginText.setText("Logging In...");
LayoutParams params = loginText.getLayoutParams();
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
loginText.setLayoutParams(params);
loginLoading.setVisibility(View.VISIBLE);
然后,我也有一些代码,如果登录失败,从而推翻这些变化。
下面是我想出了,希望它的可重复使用的实现:
ProgressButton
目前,当用户点击该按钮,它会显示绘制(和动画),为你,但你必须手动关闭该加载动画一旦你通过你的后台任务完成:
_progressButton.stopLoadingAnimation();
这将驳回任何您动画和显示之前的文本在那里。 缺少它,没有文字,而动画的唯一的事情是在进步,但我认为你们可以一起砍东西的那个。 我打算进一步扩大这一点,所以,它将使你打电话像_progressButton.setProgress(10)
然后设置完成的百分比。 我甚至可以让它线程安全的。
这样,您就不必使用多个布局和嵌入按钮的顶部的任何textviews,它都为你处理。
创建自己的按钮,这将会由中心的TextView
和GONE
ImageView
。 点击移动后TextView
到左侧,使ImageView
你绘制可见。