尝试通过灵活的TextView在可能高度不同的RelativeLayout容器中进行一些对齐。 似乎没有脑子,然而,它并没有在它应该的任何地方对齐。
以下简单代码:
private void setAddSubscription(Subscriber<? super String[]> subscriber) {
//Initializing custom SQLiteOpenHelper and SQLite database
File mFile = new File(mFolderPath);
int booksSize = getFilesInFolder(mFile).size();
String[] sizeList = {String.valueOf(booksSize)};
//The first publishProgress is used to set the max of the progressbar
subscriber.onNext(addReturnParams(String.valueOf(sizeList.length), null, null));
for (int i = 0; i < booksSize; i++) {
EpubReader reader = new EpubReader();
//publishProgress with current item, current file*
subscriber.onNext(addReturnParams(String.valueOf(sizeList.length),
String.valueOf(i), getFilesInFolder(mFile).get(i).getName()));
//Inserting current item in database. Code removed
}
}
private String[] addReturnParams(String totalItems, String currentItem, String currentFile) {
return new String[]{totalItems, currentItem, currentFile};
}
结果如下:
显然可以预期红色矩形将与文本垂直对齐。但事实并非如此。
出了什么问题?...
答案 0 :(得分:0)
用户android:layout_below =“@ id / id”
<View
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/t1"
android:layout_below="@+id/t1"
android:background="#6f00"/>
我希望它的工作
答案 1 :(得分:0)
try using the attribute "android:layout_below". For example:
...
<View android:id="@+id/v1"
android:layout_width="10dp"
android:layout_height="73dp"
android:background="#300f"/>
<TextView
android:id="@+id/t1"
android:layout_below="@+id/v1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="ceterum censeo carthaginem esse delendam"/>
...
答案 2 :(得分:0)
请在下面试试。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View android:id="@+id/some_view_id"
android:layout_width="10dp"
android:layout_height="73dp"
android:background="#300f"/>
<TextView
android:id="@+id/t1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_below="@id/some_view_id"
android:text="varying text view here that can \n go for multiple lines and not disturb the one below"/>
<View
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_below="@id/t1"
android:background="#6f00"/>
</RelativeLayout>
答案 3 :(得分:0)
尝试此代码可能会解决您的问题:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff" >
<View
android:layout_width="10dp"
android:layout_height="73dp"
android:background="#300f" />
<TextView
android:id="@+id/t1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="ceterum censeo carthaginem esse delendam" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<View
android:layout_width="10dp"
android:layout_height="73dp"
android:background="#6f00" />
</LinearLayout>
</RelativeLayout>
答案 4 :(得分:0)
像这样使用android:layout_toEndOf
<TextView
android:id="@+id/t1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="ceterum censeo carthaginem esse delendam"/>
<View
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/t1"
android:layout_alignBottom="@+id/t1"
android:background="#6f00"/>
答案 5 :(得分:0)
它与你的相对布局高度设置为wrap_content。
来自RelativeLayout文档:
请注意,您不能在大小之间具有循环依赖关系 RelativeLayout及其子女的位置。例如,你 不能将RelativeLayout的高度设置为WRAP_CONTENT和a 子项设置为ALIGN_PARENT_BOTTOM。
因此,要么将高度设置为match_parent,要么更容易,就像Ahamed所写 将android:layout_centerVertical =“true”添加到红色布局
答案 6 :(得分:0)
试试这个解决方案。希望这有帮助。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:layout_width="10dp"
android:layout_height="73dp"
android:background="#300f"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true">
<TextView
android:id="@+id/t1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ceterum censeo carthaginem esse delendam"/>
<View
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/t1"
android:layout_alignBottom="@+id/t1"
android:background="#6f00"/>
</RelativeLayout>
</RelativeLayout>