Android-将TextView的宽度设置为按钮-1或按钮-2的左侧

The*_*ind 5 android textview android-layout

背景:
我有一个TextView和两个(自定义)按钮在右边TextView.2个按钮和TextView单个包含在内RelativeLayout.现在,在任何时间点,都可以看到 button-1或button-2 .因为我不知道哪个按钮可见,所以我在两个按钮的代码中添加了

android:layout_toRightOf="@+id/MyTextView" 
Run Code Online (Sandbox Code Playgroud)

XML文件中的属性.哪个工作正常.这会根据按钮的位置(和宽度)放置按钮TextView.

问题:
语言更改后,我必须根据Button右侧的宽度更改TextView的宽度.我尝试minWidth/maxWidth了按钮和TextView它们,但它们仍然不允许TextView根据按钮的宽度动态调整大小.

无论如何,我可以指定:

android:layout_toLeftOf="@+id/button1 | @+id/button2"
Run Code Online (Sandbox Code Playgroud)

即,TextView按钮-1或按钮-2的左侧.那么文本视图将根据右边的按钮对齐?

注意:
我更喜欢需要更改XML布局文件(静态)的解决方案,而不是在java(活动)文件中添加代码.

Mys*_*icϡ 8

你可以保持两个按钮的RelativeLayout和地方RelativeLayout的另一个RelativeLayout,然后把TextView作为alignLeftRelativeLayout:

我的应用程序中的示例代码:您需要根据自己的需要进行修改

<RelativeLayout
    android:id="@+id/header_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">        

    <RelativeLayout
        android:id="@+id/image_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true" >

        <ImageView
            android:id="@+id/settings_img"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginRight="2dip"
            android:contentDescription="@string/setting_desc"
            android:src="@drawable/top_settings"
            android:visibility="gone" />
        <ImageView
            android:id="@+id/logout_img"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toRightOf="@id/settings_img"
            android:contentDescription="@string/logout_desc"
            android:src="@drawable/top_quit"
            android:visibility="gone" />
    </RelativeLayout>

    <ImageView
        android:id="@+id/logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/image_container"
        android:layout_centerVertical="true"
        android:contentDescription="@string/logo_desc"
        android:src="@drawable/top_logo" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

因此,您的视图将在任何ImageView可见的情况下进行调整.


Vik*_*ram 6

问题:语言更改后,我必须根据Button右侧的宽度更改TextView的宽度.我试图minWidth/maxWidth的按钮和TextView的两个为好,但他们仍然不能够基于按钮的宽度的TextView的动态调整.

好的.

开始了:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        android:maxLines="1"
        android:ellipsize="end"
        android:layout_toLeftOf="@+id/fl" />

    <FrameLayout
        android:id="@id/fl"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true" >

        <Button
            android:id="@+id/bb1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="HELLO 1" />

        <Button
            android:id="@+id/bb2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="HELLO 2" />

    </FrameLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

发生了什么?

我们将其分组为Buttonsa FrameLayout.所以,你的担忧Is there anyway where I can specify : android:layout_toLeftOf="@+id/button1 | @+id/button2"已得到解决 - 现在,我们只需要告诉你TextView左边的FrameLayout.

接下来,我们将TextView's宽度设置为match_parent.这必要的.如果TextView's宽度设置为wrap_content,则TextView看起来是右对齐的.

另外,我们需要Buttons坚持到正确的边缘(从我的问题中收集到的).所以,我们在上面设置layout_alignParentRight="true"属性FrameLayout.

maxLinesellipsize属性确保文字保持像样.

如果我以某种方式误解了这个问题,请在下面的评论中解释.

这就是它.

  • @TheLostMind我建议`FrameLayout`记住你所说的:`......在任何时候,按钮-1或按钮-2都是可见的.`FrameLayout`是最有效的android视图组 - "RelativeLayout"是最少的.我不能说为什么`FrameLayout`不适合你.奇怪的是,接受的答案是我的重复.祝你好运:) (2认同)