내 액티비티에서 팽창중인 모든 뷰 위젯을 가로 채고 해당 뷰의 setText 기능이있는 경우이를 덮어 쓰려고합니다.모든 뷰 요소를 가로 채기 요?
XML 레이아웃에서 TextView에 android : text = "bla"가있는 경우 가로 채기를 원할 것입니다. xml에서 설정되는 모든 텍스트의 끝에 **를 추가 할 수 있습니다.
내가 필요로하는 것과 비슷한 것으로 보이는 한 가지 방법은 사용자 정의 레이아웃 인플레이터를 사용하는 것입니다. 내 InflatorOnSteriods에서
LayoutInflaterCompat.setFactory(layoutInflator, InflatorOnSteriods(this))
과는 onCreateView을 무시하고 다음이 모든보기 인터셉트 ..이 방법은 전혀 작동하지 않는 것 같습니다. onCreateView는 호출되지 않습니다.
나는 cloneInContext
LayoutInflaterCompat.setFactory(layoutInflater.cloneInContext(this), InflatorOnSteriods(this))
을 사용하는 것도 시도하지만 행운은 물론, 어쩌면 나의 접근 방식은 내가 또한 내가 모든 뷰가 발표되고 가로 챌 수 있으며, 특정 설정이 될 수있는 다른 방법으로 문을 열어주는 말들 완전히 잘못 없다 그 뷰의 특정의 속성 내가 그보기를 바꾸는 마지막 사람이되고 시스템이 나의 변화를 존중하고 나중에 그것을 무시하지 않도록 확실히하는 것이 정말로 중요합니다.
업데이트 :
나는 그것의 관련을 생각하지 않지만, 나는 마침내 내가 인플레이터 공장 솔루션을 원하는 것을 달성하기 위해 관리 내 솔루션을 문제 해결 시간 후 InflatorOnSteroids.kt의 코드
class InflatorOnSteriods(val appCompatActivity: AppCompatActivity) : LayoutInflaterFactory {
override fun onCreateView(parent: View, name: String, context: Context, attrs: AttributeSet): View {
var result: View
if (TextUtils.equals(name, "DebugDrawerLayout")) {
result = ImageView(context, attrs)
}
result = appCompatActivity.onCreateView(name, context, attrs)
if (result == null) {
// Get themed views from app compat
result = appCompatActivity.delegate.createView(parent, name, context, attrs)
}
return result
}
}
당신이 당신의 질문에 대한'InflatorOnSteriods' 클래스 코드를 추가 할 수 있습니다 here 찾을 수 있습니까? – petey
클래스가 이제는 아무 것도하지 않더라도 코드 @petey를 추가했습니다 ... 그래서 문제는 없다고 생각합니다. 내 질문은 올바른 접근 방법 일 수도 있습니다. –
"그렇다면 XML 레이아웃에서 TextView에 android : text ="bla "가있는 경우 가로 채기를 원할 수 있으며 xml에서 설정 한 모든 텍스트의 끝에 **를 추가 할 수 있기를 원합니다." 이게 어디에서 생기는거야? (또한 위대한 당신은 kotlin을 사용하고 있습니다) – petey