在我的应用程序中,我有一个内部Relativelayout,左侧有2个图像按钮(后退按钮和帮助按钮),右侧有2个图像按钮(前进按钮和信息按钮)和Textview。
问题是当用户进行测验时,动态设置文本。有2种可能的文本(见图像)。
如您所见,错误答案的文字是此Textview的最大字符长度。我的目标是为Imagebuttons进行修复定位。 但我不想为Texview设置固定宽度。我认为有更好的解决方案。
实现这一目标的最佳方法是什么?
编辑:
这是我的内心相对布局:
tryCatch({
# this is the test (just run the call in question)
polr(a, data=rData, Hess=TRUE)
}, warning = function(w) {
# this is how tryCatch handles a stop event
message("Model doesn't fit") # message to console
modelFail <<- TRUE # set a variable to test
}, error = function(e) {
# this is tryCatch handing an error event
message("error!")
}, finally = {
# this is what to do in the event of an.. event
# I'm not using this approach
})
if(exists("modelFail")){
cat("DON'T PANIC! The model fit failed, moving on...")
rm(modelFail) # I clear the flag to reuse in case of another failure in loop
return()
} else {
# now it is safe to run the fit as we have handled an error above
m <- polr(a, data=rData, Hess=TRUE) # build model
}
答案 0 :(得分:1)
将layout_toRightOf
,layout_toLeftOf
设置为TextView。
并从ImageView中删除android:layout_toEndOf="@+id/tv_resultmessage"
等。
<RelativeLayout
android:id="@+id/layout_progressbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginTop="20dp"
android:layout_toEndOf="@+id/iv_image"
android:layout_toRightOf="@+id/iv_image"
android:gravity="bottom"
android:orientation="horizontal">
<ImageButton
android:id="@+id/bt_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:enabled="false"
android:src="@drawable/ic_arrow_right"
android:text="@string/bt_next"/>
<ImageButton
android:id="@+id/bt_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/bt_next"
android:layout_toStartOf="@+id/bt_next"
android:layout_marginRight="16dp"
android:background="@null"
android:src="@drawable/ic_info"/>
<TextView
android:id="@+id/tv_resultmessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/bt_praxis"
android:layout_toLeftOf="@+id/bt_info"
android:layout_centerHorizontal="true"/>
<ImageButton
android:id="@+id/bt_praxis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/bt_back"
android:layout_toRightOf="@+id/bt_back"
android:layout_marginLeft="16dp"
android:background="@null"
android:src="@drawable/ic_praxis"/>
<ImageButton
android:id="@+id/bt_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:src="@drawable/ic_arrow_left"
android:text="@string/bt_back"/>
<ProgressBar
android:id="@+id/pb_quiz"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/bt_back"
android:padding="5dp"
android:progress="1"/>
</RelativeLayout>
答案 1 :(得分:0)
试试这个。
auto debug = a.m()
答案 2 :(得分:0)
您可以使用LinearLayout作为父级而不是RelativeLayout来实现相同的功能。只需将 layout_weight 设为1,即中间的TextView。对于其余组件,不指定任何重量,如果需要,您可以给出适当的余量。这样,无论文本长度如何,TextView都将保持相同的宽度。与使用RelativeLayout相比,这种方法更具可读性,并且xml标签更少。