gpt4 book ai didi

java - 单击按钮更改 TextView LayoutParameters

转载 作者:行者123 更新时间:2023-11-29 19:19:16 24 4
gpt4 key购买 nike

我愿意创建一个名为 READ MORE 的按钮,点击 TextView 的布局应该变成 WRAP CONTENTREAD更多 按钮文本应更改为SHOW LESS(这是我创建的新按钮,但在 xml 中设置可见性 GONEREAD MORE 可见性 VISIBLE)

这是我的代码,效果非常好。第一次点击READ MORE 也是第一次点击SHOW LESS 但之后如果我再次点击点击READ MORE只是按钮被替换为SHOW LESS并且布局保持不变。

  • 注意:我正在放置 TextView,它位于 LinearLayout 内,CardView 及其 fragment

XML 代码

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">


<TextView
android:id="@+id/view_project_description"
android:layout_width="match_parent"
android:layout_height="80dp"
android:padding="15dp"
android:text="No Description"
android:textColor="@color/black_overlay"
android:textSize="18dp" />


<View
android:layout_width="match_parent"
android:layout_height="12dp"
android:background="#44eaeaea" />

<Button
android:id="@+id/view_project_readmore_button"
android:layout_width="match_parent"
android:layout_height="27dp"
android:background="#55f4f4f4"
android:layout_marginLeft="75dp"
android:layout_marginRight="75dp"
android:text="Read More >>>"
android:textColor="#3143b3"
android:textSize="13sp" />

<Button
android:id="@+id/view_project_showless_button"
android:layout_width="match_parent"
android:layout_height="27dp"
android:background="#55f4f4f4"
android:layout_marginLeft="75dp"
android:layout_marginRight="75dp"
android:text="Show Less >>>"
android:textColor="#3143b3"
android:textSize="13sp"
android:visibility="gone"/>




</LinearLayout>

Java 按钮代码

final Button view_project_readmore =(Button)getView().findViewById(R.id.view_project_readmore_button);
final Button view_project_showless = (Button)getView().findViewById(R.id.view_project_showless_button);
view_project_showless.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
project_desc.setEnabled(false);
project_desc.setVisibility(View.GONE);
final float scale = getContext().getResources().getDisplayMetrics().density;
int pixels = (int) (80 * scale + 0.5f);
project_desc.setHeight(500);
project_desc.setText("This is less Description Now");
project_desc.setEnabled(true);
project_desc.setVisibility(View.VISIBLE);
view_project_readmore.setVisibility(View.VISIBLE);
view_project_showless.setVisibility(View.GONE);


}
});

view_project_readmore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {


project_desc.setEnabled(false);
//project_desc.setVisibility(View.GONE);
Typeface typeface=Typeface.createFromAsset(getActivity().getAssets(), "fonts/Raleway-Medium.ttf");
project_desc.setTypeface(typeface);
project_desc.setText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec non sapien tellus. Suspendisse non sapien nulla. Maecenas ornare velit sit amet consequat hendrerit. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec egestas dignissim enim. Nunc non egestas lacus. Aliquam rhoncus nec urna eu semper. In varius justo augue, eu tincidunt tellus ultricies nec. Pellentesque vel metus sapien.\n" +
"\n" +
"Morbi venenatis ultrices felis et sodales. Suspendisse aliquet justo nec gravida viverra. Nulla condimentum mi ac purus feugiat semper. Ut libero nunc, molestie ac dignissim quis, laoreet vel sapien. Morbi porttitor pulvinar mi, non consectetur lectus posuere ac. Morbi blandit nisl eu diam pretium, maximus mattis orci lobortis. Donec ut tincidunt erat. Donec pharetra, sapien eget mollis vestibulum, felis nisl finibus sapien, tempus laoreet turpis ipsum fermentum eros. Praesent eu nulla facilisis, aliquam massa a, hendrerit risus. Proin at mi odio. Quisque semper, nunc sit amet molestie mattis, quam orci commodo ipsum, ut congue risus dolor eget tellus. Nullam ac mauris in eros condimentum lobortis eget eget ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing elit.");

ViewGroup.LayoutParams params = project_desc.getLayoutParams();
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
project_desc.setLayoutParams(params);
project_desc.setEnabled(true);
//project_desc.setVisibility(View.VISIBLE);
view_project_readmore.setVisibility(View.GONE);
view_project_showless.setVisibility(View.VISIBLE);



}
});

最佳答案

通过显示较少按钮的点击监听器中的布局参数设置高度就可以了。

所以替换这个:

project_desc.setHeight(500);

有了这个:

ViewGroup.LayoutParams params = project_desc.getLayoutParams();
params.height = 500;
project_desc.setLayoutParams(params);

或者如果你想让它更短,这也行:

project_desc.getLayoutParams().height = 500;

关于java - 单击按钮更改 TextView LayoutParameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42766174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com