我正在尝试在屏幕左侧的TextView中显示文本,并在“true”时在右侧显示ImageView内的图像:
<RelativeLayout
android:id="@+id/displayMessageCenter"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/displayMessageTop"
android:layout_centerHorizontal="true"
android:background="@android:color/white">
<TextView
android:id="@+id/textMessageText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:textColor="#000000"
android:layout_weight="0.5"
android:layout_alignBottom="@+id/dividerId" />
<ImageView
android:id="@+id/messagePicture"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignBottom="@+id/dividerId"
android:layout_weight="0.5"
android:gravity="right"/>
<View
android:id="@+id/dividerId"
android:layout_width="400dp"
android:layout_height="1dp"
android:background="#000"
android:layout_above="@id/leftTextGenericDialog"
android:gravity="center"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"/>
<TextView
android:id="@+id/leftTextGenericDialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:gravity="center"
android:layout_centerHorizontal="true"
android:textColor="#FF72CCCC"
android:text="SEND RESPONSE"
android:textSize="40dp"
android:drawableLeft="@drawable/sendicon"
android:layout_above="@+id/closeButton"
android:onClick="sendMessage"/>
<ImageButton
android:id="@+id/closeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="5sp"
android:layout_gravity="center"
android:background="@drawable/button_close_animation"
android:onClick="closeActivity"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"/>
</RelativeLayout>
如果“false”隐藏图像并仅显示TextView,文本位于中心。隐藏将类似于:
if(true) imageView.setVisibility(View.GONE);
else imageView.setVisibility(View.VISIBLE);
但我不知道如何将ImageView和TextView对齐,以便在需要时更容易隐藏/显示ImageView。
我是Android开发的新手,所以请保持温和:)
答案 0 :(得分:0)
在这些情况下使用相对布局时,可以对TextView使用alignParentLeft = true,对ImageView使用alignParentRight = true,但是如果希望ImageView在可见或不可见时调整TextView。使用像
这样的东西<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="text"
android:layout_weight="0.5"
android:gravity="center_horizontal"
/>
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:visibility="gone"
/>
</LinearLayout>
答案 1 :(得分:0)
对于 true 条件,您只需设置
即可android:alignParentLeft="true"
和
android:alignParentRight="true"
与TextView和ImageView相对应。
对于 false 条件,您可以以编程方式将规则设置为TextView。只需使用 findViewById 获取TextView并设置如下规则:
TextView tv = (TextView) findViewById(R.id.textMessageText);
RelativeLayout.LayoutParams layoutParams =
(RelativeLayout.LayoutParams)tv.getLayoutParams();
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
tv.setLayoutParams(layoutParams);