簡體   English   中英

單擊按鈕更改TextView LayoutParameters

[英]Changing TextView LayoutParameters on Button Click

我願意創建一個名為了解更多點擊的布局按鈕TextView應該轉向WRAP CONTENT 多讀按鈕上的文字應改為顯示更少 (這是新的按鈕,我創建,但設置可見GONE在XML同時閱讀多了能見度( VISIBLE

所以這是我的代碼,它的功能很棒。.在第一次單擊“ READ MORE”和第一次單擊“ SHOW LESS”之后,但是在此之后,如果再次單擊“ READ MORE” ,只將按鈕替換為“ SHOW LESS” ,並且布局保持不變。

  • 注意:我將放置在LinearLayout TextView放在CardView LinearLayout並且它是一個片段

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM